在iCarousel的iCarouselTypeRotary视图中隐藏图像

我在iCarousel中设置了图像。 当我滚动旋转木马时,它显示前后的图像。 我不想在后面显示图像。 请帮忙。 谢谢。

您需要更改为自定义传送带types,并将iCarouselTypeRotary的实现复制到您的代理中。 然后实现-carousel:itemAlphaForOffset:使得后面的项目具有零的字母。

你应该实现委托:

 - (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value{ switch (option) { case iCarouselOptionVisibleItems: { return numberOfItemsIntheFront; } } } 

在iCarousel的最新版本中,最简单的方法是在您的轮播项目视图上设置view.layer.doubleSided = NO,或使用iCarouselOptionShowBackfaces属性,如下所示:

 - (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value { switch (option) { case iCarouselOptionShowBackfaces: { return NO; } default: { return value; } } } 

下面的代码将很好地消退后面的项目。 请享用。

 func carousel(carousel: iCarousel, valueForOption option: iCarouselOption, withDefault value: CGFloat) -> CGFloat { if (option == .Spacing) { return value * 1.1 } else if (option == .FadeMin) { return 0; } else if (option == .FadeMax) { return 0; } else if (option == .FadeRange) { return 3; } return value } 

我尝试了@NickLockwood提出的解决scheme,但似乎没有工作:-(我将它添加到viewForItemAtIndex&placeholderViewAtIndex两个方法。我的图像大小为115 * 115像素和canvas大小为146 * 146像素。 iCarouselOptionSpacing(方法valueForOption内)返回值'返回值* 0.82f;'做了我的伎俩。