【问题标题】:UIScrollView callbacks while animating internally内部动画时的 UIScrollView 回调
【发布时间】:2011-06-27 06:58:34
【问题描述】:

我的 UIScrollView 有一个缩放的子视图(在 viewForZoomingInScrollView:scrollView 中返回)和许多其他子视图,它们注释缩放视图并且应始终以相对坐标定位在缩放视图的顶部

UIScrollView
    - zoomChild (size 100x100 at scale 1)
    - Annotate Child (size 10x10), always placed at relative position (0.2, 0.2) of zoomChild's frame

我继承了 UIScrollView 并覆盖了 scrollViewDidZoom:。我定位一个注释子像

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{
    self.annotateChild.frame = CGRectMake(0.2*100*self.zoomScale, 0.2*100*self.zoomScale, 10, 10);
}

只要用户正在与滚动视图交互,它就可以正常工作。 scrollViewDidZoom:/scrollViewDidScroll:,不过好像没有调用时

  • zoomBounce:scrollview 被捏得比 minZoom 小,用户松开手指,scrollview 动画回到 minScale。 scrollViewDidZoom:在动画完成时调用,而不是在动画期间调用。

  • 使用 zoomToRect:animated: 缩放到矩形时。同样,在动画完成之前不会调用 scrollViewDidZoom:。

所以问题归结为:我怎样才能在 self.zoomScale 发生变化时得到通知,包括通过一些内部动画发生这种情况时?

或者,我可以将我的注释视图作为子视图添加到 zoomView 并以某种方式确保它们不被缩放吗?

【问题讨论】:

    标签: iphone uiscrollview


    【解决方案1】:

    这是一个可能有效的答案:In iOS 4.0, why does UIScrollView zoomToRect:animated: not trigger the scrollViewDidScroll or scrollViewDidZoom delegates while animating?

    我需要和你一样做,但我还没来得及尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多