gpt4 book ai didi

objective-c - iCarousel 禁用在后台完成的任何其他动画

转载 作者:行者123 更新时间:2023-11-29 04:17:26 25 4
gpt4 key购买 nike

我正在使用 Nick Lockwood 的 iCarousel 来显示图像,当轮播停在图像处时,我需要在轮播后面的背景之间进行转换。我正在使用 UIView 的 animateWithDuration,问题是动画完成会立即发生,因为 iCarousel 正在调用 [CATransaction setDisableActions:YES];

我在iCarousel的Step方法中删除了对disableAnimation和enableAnimation的调用,现在我的过渡动画工作正常,但我担心现在会缺少一些功能或出现奇怪的错误。

任何人都可以同意或建议不同的方法吗?

最佳答案

[CATransaction setDisableActions:YES] 部分是为了 Mac 支持,部分是为了防止加载项目 View 时出现奇怪的调整大小效果。如果您没有看到任何问题,那么禁用这些行可能是安全的,但如果不需要的话,通常最好不要修改库,因为这会使以后升级到新版本变得更加困难。

什么时候触发动画?如果您只想在旋转木马停止时发生这种情况,那么正确的位置可能是在

- (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel;

委托(delegate)方法。如果你在那里这样做,那么动画停止就不会有问题。如果您已经在那里执行此操作,并且仍然遇到问题,那么解决方法是将动画延迟到下一次运行循环更新,您可以使用 GCD 来执行此操作,如下所示:

dispatch_async(dispatch_get_main_queue(), ^{    
//perform your animation code
});

关于objective-c - iCarousel 禁用在后台完成的任何其他动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490031/

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