在 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 视图中隐藏图像的主要内容,如果未能解决你的问题,请参考以下文章