Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用UIScrollView';s zoomScale&;contentOffset,并应用于较大的图像?_Ios_Objective C - Fatal编程技术网

Ios 如何使用UIScrollView';s zoomScale&;contentOffset,并应用于较大的图像?

Ios 如何使用UIScrollView';s zoomScale&;contentOffset,并应用于较大的图像?,ios,objective-c,Ios,Objective C,我被一些我想不出来的事情缠住了 我的应用程序允许用户通过UIScrollView缩放/平移缩略图图像。然后,它需要将用户在scrollview中所做的更改以更高的分辨率应用于同一图像(即,生成一个高分辨率UIImage,它看起来与用户触摸的缩放/平移低分辨率缩略图相同) 我可以看到scrollview有一个zoomscale和contentOffset,我可以重用它,但我真的看不出如何将它应用到我的UIImage 非常感谢大家的帮助,谢谢 UIScrollView的缩放比例、内容偏移量和帧将显示

我被一些我想不出来的事情缠住了

我的应用程序允许用户通过UIScrollView缩放/平移缩略图图像。然后,它需要将用户在scrollview中所做的更改以更高的分辨率应用于同一图像(即,生成一个高分辨率UIImage,它看起来与用户触摸的缩放/平移低分辨率缩略图相同)

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


非常感谢大家的帮助,谢谢

UIScrollView的
缩放比例
内容偏移量
将显示缩略图的子矩形

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

e、 g

您的滚动条具有
100px
x
100px

您的缩略图是
100px
x
100px
,并在
4x
处缩放,内容偏移量为
(x:100,y:100)
。您将在滚动条的100x100窗口内看到一个子矩形框架(x:25,y:25,w:25,h:25),与原始缩略图相对,即模糊。宽度和高度来自滚动框

一旦你在
1000px
x
1000px
的高分辨率图像中翻转,你将希望通过将缩放设置为
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图像上进行裁剪