ios - 如何使用 iCarousel 淡出 currentItem 之前的所有项目?

标签 ios objective-c xcode icarousel

我正在使用带有自定义转换的 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/

相关文章:

iphone - 如何在 XML (iOS) 中获取标签的一部分

swift - 在 Xcode SpriteKit 场景编辑器中向实体添加自定义 GKComponent 将 GKScene.rootNode 设置为 nil

xcode - Swift:单元格或标签是 UIcollectionView 中的 http 链接

ios - Xamarin - 在某些构建配置中包含设置包

objective-c - 构建失败,出现 : ld: duplicate symbol _OBJC_CLASS_$_Algebra5FirstViewController

objective-c - 具有可达性的 Apple Mach-O 链接器 (Id) 错误

objective-c - 我怎样才能告诉 NSTextField 自动调整它的字体大小以适应它的文本?

ios - 在 iOS 上以编程方式添加 UIBarButtonItem 操作

ios - Xcode 8 应用程序在模拟器上运行但不显示

ios - 调用super.viewWillAppear(animated)时动画是从哪里来的?