xcode 如何用iCarousel淡出currentItem之前的所有项目?

oogrdqng  于 2023-02-25  发布在  其他
关注(0)|答案(3)|浏览(113)

我正在使用iCarousel插件与自定义转换,我试图使一个特定的褪色效果。我希望所有项目之前,当前项目褪色,但当前项目和所有之后不褪色。有一种方法可以做到这一点与褪色选项?我尝试了,但没有成功。所以我试图使动画上的视图旋转木马。这是我在这里得到的:

- (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;

然后延迟一段时间启动淡出动画

wpcxdonn

wpcxdonn1#

如果我没理解错的话,您只需要将以下代码添加到委托中:

- (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;
}
0ejtzxu1

0ejtzxu12#

使用Swift 3(https://medium.com/@arb1nsnmgl/icarousel-walkthrough-swift-3-0-887554155242#.bgs3r7n7b如果您在使用Swift 3时iCarousel出现问题,请访问www.example.com)

func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
    if (option == .fadeMin)
    {
        return 0;
    } else if (option == .fadeMinAlpha)
    {
        return 0.3;
    } else if (option == .fadeMax)
    {
        return 0.3;
    }
    return value;
}
yshpjwxd

yshpjwxd3#

如果你需要淡化前一个和下一个元素,那么在委托中使用该代码。

func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
        switch (option) {
        case .fadeMax: return 0
        case .fadeMin: return 0
        case .fadeMinAlpha: return 0.6
        default: return value
        }
    }

相关问题