在 iCarousel 的 iCarouselTypeRotary 视图中隐藏图像

Posted

技术标签:

【中文标题】在 iCarousel 的 iCarouselTypeRotary 视图中隐藏图像【英文标题】:Hiding back images in iCarouselTypeRotary view for iCarousel 【发布时间】:2012-02-21 12:34:50 【问题描述】:

我已在iCarousel 中设置图像。当我滚动轮播时,它会在前后显示图像。我不想在后面显示图像。请帮忙。谢谢。

【问题讨论】:

您是否使用过 iCarousael 的示例代码,然后它还提供了不同的开关类型,您可以更改不会在背景中显示图像的类型 请详细解释一下.. 【参考方案1】:

你应该实现委托:

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

【讨论】:

【参考方案2】:

您需要更改为自定义轮播类型,并在您的委托中复制 iCarouselTypeRotary 的实现。然后实现-carousel:itemAlphaForOffset:,使后面的项目的 alpha 为零。

【讨论】:

很高兴听到。如果我的回答有帮助,请您点击勾选标记将其标记为正确答案吗? 你能不能给这个@Simon更多的描述【参考方案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;
        
    
 

【讨论】:

我试过了,但视图仍然可见。如果我正确理解了这个问题,OP(和我自己)正试图隐藏前视图后面的视图。 尝试将 iCarouselOptionShowBackfaces 设置为 NO。【参考方案4】:

下面的代码将很好地淡化要退到后面的项目。享受吧。

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

【讨论】:

【参考方案5】:

我尝试了@NickLockwood 建议的解决方案,但似乎不起作用 :-( 我将它添加到 viewForItemAtIndex 和 placeholderViewAtIndex 的两种方法中。我的图像尺寸为 115*115 像素,画布尺寸为 146*146 像素。但是,在 iCarouselOptionSpacing 下(在 valueForOption 方法内)设置返回值 'return value * 0.82f;' 对我有用。

【讨论】:

听起来您正在尝试解决与问题中提出的问题不同的问题。我看不出改变间距会如何影响向后的项目是否可见o_O【参考方案6】:

隐藏背景图片的最简单方法

 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
  

【讨论】:

以上是关于在 iCarousel 的 iCarouselTypeRotary 视图中隐藏图像的主要内容,如果未能解决你的问题,请参考以下文章

不同项目的不同宽度 - 在 iCarousel 中

如何在点击/选择时替换 iCarousel 中的特定视图?

iCarousel 多个笔尖

在 iCarousel 图像下放置标签 ios

如何确定 Icarousel 停止在哪个视图上?

在 ICarousel 中模糊图像