gpt4 book ai didi

iphone - UIScrollView 在内部动画时回调

转载 作者:行者123 更新时间:2023-12-03 19:58:58 25 4
gpt4 key购买 nike

我有一个 UIScrollView ,其中有一个已缩放的 subview (在 viewForZoomingInScrollView:scrollView 中返回)和许多其他 subview ,这些 subview 注释了缩放 View ,并且应始终位于缩放 View 顶部的相对坐标

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 发生变化时,包括通过某些内部动画发生这种情况时,如何才能收到通知?

或者,我可以将注释 View 作为 subview 添加到 ZoomView 中,并以某种方式确保它们不会缩放吗?

最佳答案

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

我需要和你做同样的事情,但我还没来得及尝试。

关于iphone - UIScrollView 在内部动画时回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6489560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com