我在iCarousel中设置了图片。当我滚动旋转木马时,它会显示正面和背面的图像。我不想在后面显示图像。请帮忙。谢谢。
答案 0 :(得分:8)
您应该实现委托:
- (CGFloat)carousel:(iCarousel *)_carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value{
switch (option)
{
case iCarouselOptionVisibleItems:
{
return numberOfItemsIntheFront;
}
}
}
答案 1 :(得分:4)
您需要更改为自定义轮播类型,并在您的委托中复制iCarouselTypeRotary的实现。然后实现-carousel:itemAlphaForOffset:
,以便后面的项目的alpha值为零。
答案 2 :(得分:3)
在最新版本的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;
}
}
}
答案 3 :(得分:2)
下面的代码可以很好地消除后面的项目。享受。
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
}
答案 4 :(得分:0)
我尝试了@NickLockwood建议的解决方案,但似乎不起作用:-(我将它添加到viewForItemAtIndex& placeholderViewAtIndex中的两个方法。我的图像大小为115 * 115像素,画布大小为146 * 146像素。但是,在iCarouselOptionSpacing(在方法valueForOption中)设置'返回值* 0.82f;'的返回值对我来说是个窍门。
答案 5 :(得分:0)
隐藏背景图像的最简单方法
func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
switch option {
case .spacing:
return 1.05
case .visibleItems:
return 3
default:
return value