UIScrollView缩放:限制平移到imageView.image边界

时间:2015-01-16 00:04:07

标签: ios objective-c iphone uiscrollview

我有一个屏幕大小的UIScrollView,其中包含相同大小的UIImageView。

我在带有AspectFit的UIImageView内部设置了一个图像,因此对于更宽的图像,顶部和底部都有黑条。缩小时这是预期的。

双击屏幕会强制[self.scrollView setZoomScale:self.scrollView.maximumZoomScale animated:YES];问题是,在上面提到的图像上,我可以远远超出照片的边缘。

我认为这是因为return imageView;中的(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView和imageView高度比图像高,所以我可以平移到imageView的顶部和底部,忽略其内容。

那么,我如何限制将scrollview平移到图像的边界?

2 个答案:

答案 0 :(得分:0)

你需要使用这个:Emulating aspect-fit behaviour using AutoLayout constraints in Xcode 6

适合Autolayout的方面。然后,如果图像大小不同,则需要在加载图像时添加宽高比约束。你可以得到一个错误,变焦后的图像粘到右边缘。仍然无法解决它。

答案 1 :(得分:0)

只需使用以下代码将scrollview的内容大小设置为图像大小:

scrollView.contentSize = [scrollView imageView].image.size;

请注意,您应该在为scrollview imageView设置图像时执行此操作。