Ios 如何使用UIScrollView';s zoomScale&;contentOffset,并应用于较大的图像?
我被一些我想不出来的事情缠住了 我的应用程序允许用户通过UIScrollView缩放/平移缩略图图像。然后,它需要将用户在scrollview中所做的更改以更高的分辨率应用于同一图像(即,生成一个高分辨率UIImage,它看起来与用户触摸的缩放/平移低分辨率缩略图相同) 我可以看到scrollview有一个zoomscale和contentOffset,我可以重用它,但我真的看不出如何将它应用到我的UIImageIos 如何使用UIScrollView';s zoomScale&;contentOffset,并应用于较大的图像?,ios,objective-c,Ios,Objective C,我被一些我想不出来的事情缠住了 我的应用程序允许用户通过UIScrollView缩放/平移缩略图图像。然后,它需要将用户在scrollview中所做的更改以更高的分辨率应用于同一图像(即,生成一个高分辨率UIImage,它看起来与用户触摸的缩放/平移低分辨率缩略图相同) 我可以看到scrollview有一个zoomscale和contentOffset,我可以重用它,但我真的看不出如何将它应用到我的UIImage 非常感谢大家的帮助,谢谢 UIScrollView的缩放比例、内容偏移量和帧将显示
非常感谢大家的帮助,谢谢 UIScrollView的
缩放比例
、内容偏移量
和帧
将显示缩略图的子矩形
根据图像的高分辨率版本按比例重新缩放该矩形
e、 g
您的滚动条具有100px
x100px
您的缩略图是100px
x100px
,并在4x
处缩放,内容偏移量为(x:100,y:100)
。您将在滚动条的100x100窗口内看到一个子矩形框架(x:25,y:25,w:25,h:25),与原始缩略图相对,即模糊。宽度和高度来自滚动框
一旦你在1000px
x1000px
的高分辨率图像中翻转,你将希望通过将缩放设置为0.4
来呈现图像的相同部分,除了现在呈现(x:250,y:250,w:250,h:250)
<代码>内容偏移量保持不变
请注意,显示整个缩略图的1x
缩放和零偏移是0.1x
缩放和相对于较高分辨率的零偏移
但是
你想得太多了。您的容器
UIImageView
为您完成所有工作。一旦达到目标缩放点,只需将高分辨率图像加载到imageView(myImageView.image=hiresImage
)中,如果您的contentMode设置为Scale to Fill
(UIViewContentModeScaleToFill
)或Aspect Fill
,则该图像将“正常工作”。低分辨率图像将被高分辨率图像完全替换在正确的位置。谢谢您的帮助。我之所以不将低分辨率图像替换为高分辨率图像,是因为高分辨率图像上的准备工作是为了打印,而不是为了显示——最后我需要一个静态图像,显示与用户所做的相同的内容。有什么想法吗?谢谢用我在第一部分说的话。将缩略图的可见矩形应用于您的hires版本,您的意思是仍然在UIScrollView中,然后以某种方式要求它只渲染其可见部分?或者不使用scrollview并以某种方式使用drawRect?我现在明白你的问题了-使用你从scroll view中获得的rect,并使用此answer()在你的hires图像上进行裁剪