代码之家  ›  专栏  ›  技术社区  ›  Craig

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

  •  4
  • Craig  · 技术社区  · 15 年前

    我想我在uiscrollview中发现了一个bug,但是我想检查一下其他人是否也在观察同样的东西,以及它是否是预期的行为。

    我有一个uiscrollview,正在尝试使用zoomtorect设置它正在查看的内容。那很好。如果我拖动视图,使其在其他地方查找,然后用相同的值触发ZoomTorect,那么它什么也不做。zoomtorect命令只在需要调整缩放比例时执行某些操作,如果只需要平移,则视图将静止不动。因为用户可以捏一下放大或缩小,所以我只是希望使用Zoomtorect,而不必再次检查缩放级别是否会有所不同。

    有其他人经历过吗?是这样发生的还是一个错误?

    ***按要求添加代码

    第一次调用ZoomToRect

    [myScrollView zoomToRect:zoomToRect animated:YES];
    

    视图正确瞄准了uiscrollview中我想要的点

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

    现在用相同的矩形再次调用ZoomToRect

    [myscrollview zoomtorect:zoomtorect animated:yes];
    

    什么都没发生。

    2 回复  |  直到 13 年前
        1
  •  3
  •   Craig    15 年前

    苹果称这是一个已知的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];
    }
    
        2
  •  -2
  •   Bitmap    13 年前

    违约 maximumZoomScale 是1。所以当我们双击时它不会缩放。 设置 最大缩放比例 这样地:

    myScrollView.maximumZoomScale = 5.0f;