【发布时间】:2011-04-28 22:57:01
【问题描述】:
我需要密切监视滚动视图的比例,以便我可以根据滚动视图的动画缩放来更新内容视图的元素(管理多个 CALayers 的子视图)。
在 iOS 3.1 上,一切正常,我使用 zoomToRect:animated: 和 UIScrollViewDelegate 的 scrollViewDidScroll: 消息 在动画发生时重复调用,让我根据实际缩放更新子视图元素。
iOS 4.0 上的相同代码不会表现出相同的行为。当我调用 zoomToRect:animated: 时,代表(scrollViewDidScroll: 和 scrollViewDidZoom)只会被调用 一次,这使我的子元素去同步,直到动画完成。事实上,子元素会立即跳跃,然后被缩放动画赶上,直到一切都在正确的位置。就好像动画没有拾取子视图CALayers 上的修改。
我曾尝试使用动画块手动制作动画,但情况相同,没有渐进式回调调用。我也尝试过 KVO,但我不清楚如何利用 UIScrollView 管理的动画。
在 iOS 4 上是否有一种解决方法可以让我在 UIScrollView 缩放动画时将缩放值推送到我的子视图?
【问题讨论】:
标签: ios ios4 uiscrollview uiscrollviewdelegate