在iCarousel的iCarouselTypeRotary视图中隐藏图像

时间:2012-02-21 12:34:50

标签: iphone ios carousel icarousel

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

6 个答案:

答案 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