我正在尝试使用通常的 UIView 类方法为一些东西制作动画。我在流行的iCarousel库调用的方法中调用这些动画方法。当我滚动轮播时,动画立即进入完成状态并调用完成函数(忽略动画的持续时间)。BOOL 是真的,finished
所以看起来动画没有被打断。
当我在 iCarousel 的委托方法之外触发这些动画时,它们会起作用。我不打算修复 iCarousel,也不认为它有什么问题。我更好奇里面的代码可能会导致我的动画立即完成。我可以做些什么来避免这个问题。
这是一个例子:
- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel {
[UIView
animateWithDuration:5.0f
delay:0
options:
UIViewAnimationOptionCurveEaseOut |
UIViewAnimationOptionOverrideInheritedDuration |
UIViewAnimationOptionOverrideInheritedCurve
animations:^{
myView.alpha = 0;
}
completion:^(BOOL finished){
NSLog(@"Completed. Did it finish? %i", finished);
}];
}
最后一个细节:
iCarousel 的文档中提到可以更改轮播的 useDisplayLink 属性,以避免与动画发生一些冲突。这似乎没有任何区别。
提前感谢您的帮助!