如果您的UIScrollView已经处于该缩放级别,则zoomToRect不执行任何操作

时间:2010-01-22 09:47:43

标签: iphone uiscrollview

我想我在UIScrollView中发现了一个错误,但是我想检查其他人是否正在观察相同的事情,以及是否是预期的行为。

我有一个UIScrollView,我正在尝试使用zoomToRect设置它的内容。这很好。如果我然后拖动视图,使其在其他地方查找,然后使用相同的值触发zoomToRect,它什么都不做。 zoomToRect命令仅在需要调整zoomScale时执行某些操作,如果只需要平移就可以使视图静止不动。由于用户可以捏放大或缩小我只是希望使用zoomToRect而不必仔细检查zoomLevels会有所不同。

还有其他人经历过这个吗?它应该以这种方式发生还是一个错误?

***按要求添加代码

首先调用zoomToRect

[myScrollView zoomToRect:zoomToRect animated:YES];

在UIScrollView中正确查看我想要的目标

现在让用户在屏幕上拖动并移动UIScrollView正在查看的点。不进行缩放,仅进行平移。

现在再次调用zoomToRect,使用相同的rect

[myScrollView zoomToRect:zoomToRect animated:YES];

什么都没发生。

2 个答案:

答案 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;