UIScrollView实现图片放大、缩小
来源:互联网 发布:企业人员优化方案 编辑:程序博客网 时间:2024/04/30 09:02
UIScrollView实现图片放大、缩小
一、在storyboard中添加Scroll View或者用懒加载创建UIScrollView
- (UIScrollView*)scrollView
{
if (_scrollView== nil) {
_scrollView = [[UIScrollViewalloc]initWithFrame:self.view.bounds];
// 设置代理
_scrollView.delegate= self;
// 设置最大/最小缩放比例
_scrollView.maximumZoomScale= 2.0;
_scrollView.minimumZoomScale= 0.2;
[self.viewaddSubview:_scrollView];
}
return _scrollView;
}
// 让图像视图根据图像自动调整大小
[self.imageViewsizeToFit];
// 告诉scrollView内部内容的实际大小
self.scrollView.contentSize= image.size;
}
{
if (_scrollView== nil) {
_scrollView = [[UIScrollViewalloc]initWithFrame:self.view.bounds];
// 设置代理
_scrollView.delegate= self;
// 设置最大/最小缩放比例
_scrollView.maximumZoomScale= 2.0;
_scrollView.minimumZoomScale= 0.2;
[self.viewaddSubview:_scrollView];
}
return _scrollView;
}
注意:
UIScrollView的frame大小和父窗口view的frame大小一致
二、把imageView懒加载添加到UIScrollView
- (UIImageView*)imageView
{
if (_imageView== nil) {
_imageView = [[UIImageViewalloc]init];
[self.scrollViewaddSubview:_imageView];
}
return _imageView;
}
{
if (_imageView== nil) {
_imageView = [[UIImageViewalloc]init];
[self.scrollViewaddSubview:_imageView];
}
return _imageView;
}
三、设置图片
//图像的setter
- (void)setImage:(UIImage*)image
{
_image = image;
// 设置图像视图的内容
self.imageView.image= image;
- (void)setImage:(UIImage*)image
{
_image = image;
// 设置图像视图的内容
self.imageView.image= image;
// 让图像视图根据图像自动调整大小
[self.imageViewsizeToFit];
// 告诉scrollView内部内容的实际大小
self.scrollView.contentSize= image.size;
}
注意:
设置图像视图根据图像自动调整大小,因为UIImageView的frame没有设置。
[self.imageView sizeToFit];
[self.imageView sizeToFit];
告诉scrollView内部内容的实际大小
self.scrollView.contentSize = image.size;
self.scrollView.contentSize = image.size;
self.scrollView和_scrollView的区别。
四、设置图像
- (void)viewDidLoad
{
[superviewDidLoad];
// 设置图像
self.image= [UIImageimageNamed:@"minion"];
}
{
[superviewDidLoad];
// 设置图像
self.image= [UIImageimageNamed:@"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__);
}
/**
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__);
}
0 0
- UIScrollView实现图片放大、缩小
- UIScrollView 图片放大缩小
- UIScrollView中实现图片的放大缩小
- UIScrollView下拉实现图片放大或缩小
- 利用UIScrollView实现图片的放大、缩小和移动查看
- UIScrollView 放大缩小及同时切换图片
- javascript 实现图片放大缩小
- Android实现图片放大缩小
- Android实现图片放大缩小
- Android实现图片放大缩小
- Android实现图片放大缩小
- Android实现图片放大缩小
- Android实现图片放大缩小
- viewpager实现图片放大缩小
- UIScrollView 的放大缩小
- UIScrollView下对图片捏合放大缩小和双击放大缩小
- UIScrollView下对图片捏合放大缩小和双击放大缩小
- JavaScript实现图片的放大、缩小、平移
- Scramble String
- 使用NSAssert进行代码调试
- vj2006(区间dp)
- 使用JMAP dump及分析dump文件
- 胡博君浅谈Java中的匿名对象
- UIScrollView实现图片放大、缩小
- Ajax长连接
- jmap -heap 命令详解
- 初步了解Google Blink
- 如何解决easyui-datagrid分页组件中文显示的问题
- 关于uxtheme.dll为无效的windows映像的问题
- nim游戏分析
- Mingw32-make “Interrupt/Exception caught (code = 0xc00000fd, addr = 0x421963)
- SG函数