在滚动视图中捏放大
Posted
技术标签:
【中文标题】在滚动视图中捏放大【英文标题】:pinch zoom in scrollview 【发布时间】:2012-06-06 12:41:57 【问题描述】:我正在制作一个包含 UIImageView 的滚动视图中的单视图应用程序,因为图像视图是杂志页面,我需要做的就是使其能够正确缩放和滚动,所以我设置通过点击进行缩放(感谢苹果的 tapToZoom 示例),一切正常。
问题是我想包含捏缩放,这有点难以实现,我成功了,但缩放不是那么正确,它似乎在跳跃比例,当我缩小时,imageView 可以走得太少以至于看不见了?
您可以在这里查看控制器:
https://github.com/HosniD/pinchzoom-iphone/blob/master/scroll/scroll/TestViewController.m
有没有人知道如何让它变得更好?
【问题讨论】:
为什么你有一个handlePinchGesture?此手势已在滚动视图中处理, 什么意思?那我该怎么办? 【参考方案1】:来自苹果文档的回答
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
return self.imageView;
- (void)viewDidLoad
[super viewDidLoad];
self.scrollView.minimumZoomScale=0.5;
self.scrollView.maximumZoomScale=6.0;
self.scrollView.contentSize=CGSizeMake(1280, 960);
self.scrollView.delegate=self;
Check my answer
【讨论】:
【参考方案2】:您想要的就是 Apple 编写的 PhotoScroller demo。我自己用过,效果很好。
请特别查看 ImageScrollView 模块。它处理缩放。
这是 UIScrollView 标题中关于缩放的代码:
/*
the following properties and methods are for zooming. as the user tracks with two fingers, we adjust the offset and the scale of the content. When the gesture ends, you should update the content
as necessary. Note that the gesture can end and a finger could still be down. While the gesture is in progress, we do not send any tracking calls to the subview.
the delegate must implement both viewForZoomingInScrollView: and scrollViewDidEndZooming:withView:atScale: in order for zooming to work and the max/min zoom scale must be different
note that we are not scaling the actual scroll view but the 'content view' returned by the delegate. the delegate must return a subview, not the scroll view itself, from viewForZoomingInScrollview:
*/
@property(nonatomic) float minimumZoomScale; // default is 1.0
@property(nonatomic) float maximumZoomScale; // default is 1.0. must be > minimum zoom scale to enable zooming
【讨论】:
其实这是一个很酷的方法,但与我所做的相比似乎有点复杂,我也没有看到他用来在 viewmImage 上设置手势识别器的说明,它是如何做到的来吗? 它通过设置 UIScrollView 的 maximumZoomScale 和 minimumZoomScale 属性来实现。我编辑了我的答案。 这就是我在 viewDidLoad 中所做的...你看我的代码了吗? 您确定 maximumZoomScale 大于 minimumZoomScale? 我很确定,minimumZoomScale 大约是 0.6【参考方案3】:使用我的演示应用程序获得指导:http://rexstjohn.com/facebook-like-ios-photo-modal-gallery-swipe-gestures/。
包括对故事板和自动布局的支持。
【讨论】:
以上是关于在滚动视图中捏放大的主要内容,如果未能解决你的问题,请参考以下文章