我正在使用带有自定义转换的 iCarousel 插件,并尝试制作特定的淡入淡出效果。 我想要当前项目褪色之前的所有项目,但当前项目以及之后的所有项目都没有褪色。有没有办法用淡入淡出选项做到这一点?我尝试过但没有成功。 所以我试着在旋转木马的 View 上制作动画。 这就是我在这里得到的:
- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel
{
UIView *viewToFadeOut = [carousel itemViewAtIndex:self.carousel.currentItemIndex-1];
[UIView animateWithDuration:0.5 delay:0.0 options:0 animations:^{
viewToFadeOut.alpha = 0.6f;
} completion:^(BOOL finished) {
}];
UIView *viewToFadeIn = [carousel itemViewAtIndex:self.carousel.currentItemIndex];
[UIView animateWithDuration:0.5 delay:0.0 options:0 animations:^{
viewToFadeIn.alpha = 1.0f;
} completion:^(BOOL finished) {
}];
}
但它并没有完全按照我的要求工作,因为淡入动画是在当前项目更改后开始的,因此动画开始得太晚了。
也许有办法实现这样的方法
- (void)carouselCurrentItemIndexWillChange:(iCarousel *)carousel;
并延迟开始淡出动画?
最佳答案
如果我没理解错的话,你只需要将它添加到你的委托(delegate)中:
- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
{
if (option == iCarouselOptionFadeMin)
{
return 0.0;
}
else if (option == iCarouselOptionFadeMinAlpha)
{
return 0.6;
}
return value;
}
关于ios - 如何使用 iCarousel 淡出 currentItem 之前的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920445/