UIScrollView 实现比例缩放

 1 #import "RootViewController.h"
 2
 3 @interface RootViewController ()<UIScrollViewDelegate>
 4 {
 5     UIImageView *imageView;
 6     UILabel *scaleRatioLabel;// 显示倍率用的Label
 7 }
 8 @property (nonatomic, strong)UIScrollView *scrollView;
 9
10 @end
11
12 @implementation RootViewController
13
14 - (void)dealloc
15 {
16     self.scrollView = nil;
17 }
18
19 - (void)viewDidLoad {
20     [super viewDidLoad];
21     self.scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
22     self.scrollView.delegate = self;
23     [self.view addSubview:self.scrollView];
24     imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1-3.jpg"]];
25     [imageView setCenter:CGPointMake([UIScreen mainScreen].bounds.size.width/2.0, [UIScreen mainScreen].bounds.size.height/2.0)];
26     [self.scrollView addSubview:imageView];
27     //内容大小与图片大小一致
28     self.scrollView.contentSize = imageView.frame.size;
29     // 最小缩放比例
30     self.scrollView.minimumZoomScale = 0.2f;
31     // 最大缩放比例
32     self.scrollView.maximumZoomScale = 5.0f;
33
34     // 用来显示倍率的Label
35     scaleRatioLabel = [[UILabel alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width/2.0 - 25, [UIScreen mainScreen].bounds.size.height/2.0 - 12.5, 50, 25)];
36     [scaleRatioLabel setBackgroundColor:[UIColor clearColor]];
37     [self.view addSubview:scaleRatioLabel];
38
39 }
40
41 #pragma mark - UIScrollViewDelegate
42 // 设置要缩放的控件
43 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
44 {
45     return imageView;
46 }
47
48 // 处理结束缩放事件
49 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
50 {
51     [self.view bringSubviewToFront:scaleRatioLabel];
52     [scaleRatioLabel setAlpha:0.6f];
53     [scaleRatioLabel setBackgroundColor:[UIColor lightGrayColor]];
54     scaleRatioLabel.text = [NSString stringWithFormat:@" x%.1f",scale];
55
56     [UIView transitionWithView:scaleRatioLabel duration:2.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{
57         scaleRatioLabel.alpha = 0.0f;
58     } completion:nil];
59 }
60
61
62 @end
时间: 2024-08-09 07:19:33

UIScrollView 实现比例缩放的相关文章

iOS开发UI—UIScrollView实现图片缩放功能

一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理.也就是说,要完成缩放功能的话,只需要将需要缩放的内容添加到UIScrollView中 2.缩放原理 当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容) 当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的v

jQuery实现等比例缩放大图片

在页面布局时,有时会遇到大图片将页面容器撑大,超出规定区域, 这时我们就需要将图片按比例缩放,让大图片自适应页面布局. 查看演示http://itmyhome.com/jquery_image_scaling/ 1.页面中有如下图片 <img alt="leaf" src="img/leaf.jpg"> 2.使用jQuery将图片缩放 <script type="text/javascript"> window.onloa

css 布局之定位 相对/绝对/成比例缩放

给body添加 overflow: hidden; 可以将页面所有的 滚动条隐藏,但必须要给body 设置一个高度 overflow: hidden; height:864px; 父元素必须要设置 position:relative 必须设置 width 与 height 且不能用百分比 父层如果是图片,要使用  background: url(bg.jpg) no-repeat; 子元素必须设置 position: absolute; 必须设置 width 与 height 定位使用 top

理解CSS3中的background-size(对响应性图片等比例缩放)

2016-03-10 01:40 by 空智, 7463 阅读, 8 评论, 收藏, 编辑 阅读目录 background-size的基本属性 给图片设置固定的宽度和高度的 固定宽度400px和高度200px-使用background-size:400px 200px缩放设置 固定宽度400px和高度200px-使用background-size:400px;的缩放设置,那么第二个参数会自动转换为auto 固定宽度400px和高度200px-使用background-size:100% 100%

jQuery实现的图片等比例缩放效果

jQuery实现的图片等比例缩放效果:如果一个容器中放一个比容器还要大的图,那就可能就造成布局出现问题,就算是不容器大,有时候也看起来不够美观,这时候就要限制图片的尺寸,当然不能变形,否则就难看了,下面就介绍一下如何使用jQuery实现等比例缩放效果.代码如下: <div id="demo"> <img src="a.jpg" width="800" height="300" alt="图片&quo

用UISliader和仿射变换-实现等比例缩放

今天在网上搜了一下没找到用slider实现等比例缩放的例子 今天自己做了一个大家看下.图片放大缩小,slider往左滑动缩小,slider往右滑动放大 #import "ViewController.h" @interface ViewController () { UIImageView * _umgView; UISlider * _sl; } @end @implementation ViewController - (void)viewDidLoad { [super view

Android imageView图片按比例缩放

android:scaleType可控制图片的缩放方式,示例代码如下: [html] view plaincopyprint? <ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleType="centerInside" android:layout_width="60dip" android:layout_height=&q

android项目 之 记事本(12) ----- 图片的等比例缩放及给图片添加边框

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在Android的UI开发中经常会遇到图片的缩放,就比如记事本,现在的图片都比较大,如果将原图不经缩放直接放在屏幕上,则会占满整个屏幕,而且有时图片会比屏幕还大,这时就不能完全的显示整个图片,所以,必须要进行缩放,但在缩放时,该如何缩放呢,长和宽的缩放比例设置为多少合适呢,为了保持原图的纵横比,所以要最好的方法就是约束缩放比例,也就是等比例缩放,相信大家都用过PS中的缩放图片的

自定义Imageview控件实现多种手势操作 (拖动、水平缩放、竖直缩放、等比例缩放、双击、长按)

项目中需要使用自定义控件的多种手势操作,之前在网上查阅资料的时候发现能找到的一般是只实现了其中的几种,这次就把我做的控件分享一下,人人为我,我为人人嘛,哈哈! 这个自定义控件实现的主要功能是控件的拖动和缩放(注意:不是对控件中的图片进行操作,话说很多帖子都把这两个混了),其中缩放可以按照三个方向进行,就是水平.竖直和等比例.双击操作只做了一个提示,长按加上了一个简单的弹出菜单. 抱歉的是没有足够的时间写详细注释了,如果跟你需要的功能相同就请直接调用,要是需要改代码就费点神自己读懂代码吧,看不懂的