打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
有关UIScrollView zoom的一点心得
实现UIScrollView的缩放,必须使maximumZoomScale(默认1.0)和minimumZoomScale(默认1.0)不同 ,并且需要在delegate中的viewForZoomingInScrollView: 方法中返回需要所放的view。实现以上即可进行缩放。
要修改缩放过程中的一些行为,可以修该delegate中的scrollViewWillBeginZooming:withView:  和scrollViewDidZoom:(此方法为每次拖动时随时调用)和scrollViewDidEndZooming:withView:atScale:(此方法为每次放缩完毕时调用)的函数内容。
注意:
viewForZoomingInScrollView方法返回的view是scrollview确定contentsize的view。contentsize的大小与该view的frame.size相同;在放缩的同时scrollview会自动设定zoomscale属性的大小,与每次放缩结束的scrollViewDidEndZooming:withView:atScale 中的scale相同。每次放缩过程中,所放缩的view的bound不会改变而frame会改变(这同修改view的transform属性的效果相同)放缩会改变frame,改变view在父视图的位置,而不会改变bound大小。推测放缩也是通过affinetransform进行改变。所以对需要固定位置的view,需要在每次scrollViewDidZoom中修改view的位置,例如如下代码实现固定ImageView始终在整个content的居中位置:

-(void)scrollViewDidZoom:(UIScrollView *)scrollView{

    CGFloat xcenter = scrollView.center.x , ycenter = scrollView.center.y;

//目前contentsize的width是否大于原scrollview的contentsize,如果大于,设置imageview中心x点为contentsize的一半,以固定imageview在该contentsize中心。如果不大于说明图像的宽还没有超出屏幕范围,可继续让中心x点为屏幕中点,此种情况确保图像在屏幕中心。

    xcenter = scrollView.contentSize.width > scrollView.frame.size.width ? \

                                                scrollView.contentSize.width/2 : xcenter;

//同上,此处修改y值

    ycenter = scrollView.contentSize.height > scrollView.frame.size.height ? \

                                                scrollView.contentSize.height/2 : ycenter;

    [[scrollView viewWithTag:imageview] setCenter:CGPointMake(xcenter, ycenter)];

}


设置scrollview的bouncesZoom属性可以确保view的放缩比例超出设置比例范围时自动进行反弹。


使图片自适应屏幕大小,以确保图片在屏幕正中的方法:

    float x_scale = scrollView.frame.size.width/selectedImage.size.width;

    float y_scale = scrollView.frame.size.height/selectedImage.size.height;

    CGFloat scale = x_scale < y_scale ? x_scale : y_scale;

    imageView.transform = CGAffineTransformMakeScale(scale, scale);

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
主题 : 分享UIScrollView显示适合屏幕大小图片及缩小放大程序
26 UIScrollView
ios 图片拖拽,捏,双击放大缩小,以及保存到相册
iOS应用开发中使用UIScrollView控件来实现图片缩放
UI 常用方法总结之UIScrollView
IOS UIScrollView不滚动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服