我想我在UIScrollView中发现了一个错误,但是我想检查其他人是否正在观察相同的事情,以及是否是预期的行为。
我有一个UIScrollView,我正在尝试使用zoomToRect设置它的内容。这很好。如果我然后拖动视图,使其在其他地方查找,然后使用相同的值触发zoomToRect,它什么都不做。 zoomToRect命令仅在需要调整zoomScale时执行某些操作,如果只需要平移就可以使视图静止不动。由于用户可以捏放大或缩小我只是希望使用zoomToRect而不必仔细检查zoomLevels会有所不同。
还有其他人经历过这个吗?它应该以这种方式发生还是一个错误?
***按要求添加代码
首先调用zoomToRect
[myScrollView zoomToRect:zoomToRect animated:YES];
在UIScrollView中正确查看我想要的目标
现在让用户在屏幕上拖动并移动UIScrollView正在查看的点。不进行缩放,仅进行平移。
现在再次调用zoomToRect,使用相同的rect
[myScrollView zoomToRect:zoomToRect animated:YES];
什么都没发生。
答案 0 :(得分:3)
Apple已经说过这是UIScrollView的一个已知错误,将在未来版本中修复。
https://devforums.apple.com/message/158712#158712
与此同时,我解决了以下问题
float zoomBefore = myScrollView.zoomScale;
[myScrollView zoomToRect:zoomToRect animated:YES];
float zoomAfter = myScrollView.zoomScale;
if (zoomBefore == zoomAfter)
{
[myScrollView setContentOffset:imageCoords animated:YES];
}
答案 1 :(得分:-2)
默认maximumZoomScale
为1.0。因此,当我们双击时它不会缩放。
像这样设置maximumZoomScale
:
myScrollView.maximumZoomScale = 5.0f;