作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我是一名优秀的程序员,十分优秀!