标签:uiscrollview实现图片放大缩小
UIScrollView实现图片放大、缩小
一、在storyboard中添加Scroll View或者用懒加载创建
UIScrollView
- (UIScrollView
*)scrollView
{
if (_scrollView
==
nil) {
_scrollView = [[UIScrollView
alloc]
initWithFrame:self.view.bounds];
//
设置代理
_scrollView.delegate
=
self;
//
设置最大/最小缩放比例
_scrollView.maximumZoomScale
=
2.0;
_scrollView.minimumZoomScale
=
0.2;
[self.view
addSubview:_scrollView];
}
return
_scrollView;
}
注意:
UIScrollView的frame大小和父窗口view的frame大小一致
二、把imageView懒加载添加到UIScrollView
- (UIImageView
*)imageView
{
if (_imageView
==
nil) {
_imageView = [[UIImageView
alloc]
init];
[self.scrollView
addSubview:_imageView];
}
return
_imageView;
}
三、设置图片
//
图像的setter
- (void)setImage:(UIImage
*)image
{
_image = image;
//
设置图像视图的内容
self.imageView.image
= image;
//
让图像视图根据图像自动调整大小
[self.imageView
sizeToFit];
//
告诉scrollView内部内容的实际大小
self.scrollView.contentSize
= image.size;
}
注意:
设置图像视图根据图像自动调整大小,因为UIImageView的frame没有设置。
[self.imageView sizeToFit];
告诉scrollView内部内容的实际大小
self.scrollView.contentSize =
image.size;
self.scrollView和_scrollView的区别。
四、设置图像
- (void)viewDidLoad
{
[super
viewDidLoad];
//
设置图像
self.image
= [UIImage
imageNamed:@"minion"];
}
五、实现UIScrollView的代理方法
#pragma mark - UIScrollView的代理方法
/**
1>
设置了代理
2>
指定了最大、最小的缩放比例
表示ScrollView是可以缩放的
代理方法的"返回值"实际上就是控制器告诉滚动视图,要缩放的是UIImageView
*/
//
告诉ScrollView要缩放的视图是谁,具体的缩放实现,是由ScrollView来完成的
// 1> scrollView要知道缩放谁
- (UIView
*)viewForZoomingInScrollView:(UIScrollView
*)scrollView
{
return
self.imageView;
}
// 2>
滚动视图即将开始缩放,通常不需要写
- (void)scrollViewWillBeginZooming:(UIScrollView
*)scrollView withView:(UIView
*)view
{
NSLog(@"%s", __func__);
}
// 3>
正在缩放,通常也不需要实现
- (void)scrollViewDidZoom:(UIScrollView
*)scrollView
{
// NSLog(@"%s", __func__);
NSLog(@"%@",
NSStringFromCGAffineTransform(self.imageView.transform));
}
// 4>
完成缩放,通常也不需要实现
- (void)scrollViewDidEndZooming:(UIScrollView
*)scrollView withView:(UIView
*)view atScale:(CGFloat)scale
{
NSLog(@"%s", __func__);
}
UIScrollView实现图片放大、缩小
标签:uiscrollview实现图片放大缩小
原文地址:http://blog.csdn.net/itcontend/article/details/41858009