内部动画时UIScrollView回调

时间:2011-06-27 06:58:35

标签: iphone uiscrollview

我有一个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);
}

只要用户与scrollview进行交互,这就可以正常工作。 scrollViewDidZoom:/ scrollViewDidScroll:,但是,

时似乎没有调用
  • zoomBounce:scrollview比minZoom小,用户释放他的手指和scrollview动画回到minScale。 scrollViewDidZoom:在动画完成时调用,但不在。

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

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

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

1 个答案:

答案 0 :(得分:2)