如何使用UIScrollView的zoomScale& amp; contentOffset,并适用于更大的图像?

时间:2014-11-19 21:33:26

标签: ios objective-c

我遇到了一些我无法弄清楚的事情......

我的应用程序允许用户通过UIScrollView缩放/平移缩略图图像。然后,它需要在滚动视图中进行用户所做的更改,并以更高的分辨率将它们应用于同一图像(即,生成与用户触摸的缩放/平移低分辨率缩略图相同的高分辨率UII图像。 )。

我可以看到scrollview有一个我可以重用的zoomscale和contentOffset,但我真的看不出如何将它应用到我的UIImage中。

所有人都非常感谢,谢谢!

1 个答案:

答案 0 :(得分:1)

zoom scale的{​​{1}},contentOffsetframe会显示缩略图的子矩形。

根据图像的较高分辨率版本按比例重新缩放该矩形。

例如

您的滚动条的界限为UIScrollView x 100px

您的缩略图为100px x 100px,缩放为100px,内容偏移为4x。你会看到一个子矩形的框架(x:25,y:25,w:25,h:25)对着滚动条的100x100窗口内的原始缩略图,即模糊。宽度和高度来自卷轴框架。

一旦您翻转(x:100,y:100) x 1000px的高分辨率图像,您将要呈现图像的同一块,除非您现在通过将缩放设置为1000px来呈现(x:250,y:250,w:250,h:250)0.4保持不变。

请注意,显示整个缩略图图像的contentOffset和零偏移的缩放是1x的缩放和相对较高分辨率的零偏移。

但是

你正在思考这个问题。您的容器0.1x为您完成所有工作。一旦达到目标缩放点,只需将较高分辨率的图像加载到imageView(UIImageView)中,假设您的contentMode设置为myImageView.image = hiresImageScale To Fill)或{ {1}}。低分辨率图像将被高分辨率版本替换为恰好正确的位置。