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