【发布时间】: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