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

缩放UIScrollView时的UIButton位置

  •  0
  • diatrevolo  · 技术社区  · 14 年前

    我有一个“世界观”,也就是说,在UIScrollView上有一个很大的、可缩放的区域。我想要几个按钮,以保持他们的世界位置时,我捏缩放,就像在谷歌地图针做。我一直在尝试的代码(我已经编写了几个小时了,但我觉得它听起来不错…尽管我可能已经筋疲力尽了)是:

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView
    {
        CGPoint center = button.center;
        center.y = center.y * scrollView.zoomScale;
        center.x = center.x * scrollView.zoomScale;
        button.center = center;
        NSLog(@"Button coordinates are %f, %f, zoomScale is %f", button.center.x, button.center.y, scrollView.zoomScale);
    }
    

    有人能看出我做错了什么吗?

    提前谢谢!

    2 回复  |  直到 14 年前
        1
  •  2
  •   diatrevolo    14 年前

    我通过在视图加载时只设置一次CGPoint“center”来解决这个问题,然后根据原始位置计算一个新的中心点。

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView
    {
        CGPoint newCenter = center; //center is set at load time, and only once
        newCenter.y = center.y * scrollView.zoomScale; //new center is calculated on original position
        newCenter.x = center.x * scrollView.zoomScale;
        button.center = newCenter;
    
        NSLog(@"Button coordinates are %f, %f, zoomScale is %f", button.center.x, button.center.y, scrollView.zoomScale);
    }
    

    很抱歉把问题弄错了,彼得。

        2
  •  1
  •   Clafou    12 年前

    – convertPoint:toView:
    – convertPoint:fromView:
    – convertRect:toView:
    – convertRect:fromView:
    

    请参阅UIView文档 http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html