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

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

【问题讨论】:

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

标签: iphone ios carousel icarousel


【解决方案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
        
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 2017-01-05
        • 2014-02-18
        • 1970-01-01
        相关资源
        最近更新 更多