如何将 iCarousel 的当前视图置于 iCarouselTypeWheel 中其他视图的顶部
Posted
技术标签:
【中文标题】如何将 iCarousel 的当前视图置于 iCarouselTypeWheel 中其他视图的顶部【英文标题】:How to bring currentview of iCarousel to the top of other views in iCarouselTypeWheel 【发布时间】:2014-02-25 10:34:10 【问题描述】:我想在ios中创建一个类似于“http://www.asianpaints.com/royale”的***,到目前为止我使用的是iCarousel
类型:iCarouselTypeWheel
。它几乎对我有用,但主要问题是中心视图被下一个元素重叠。请告诉我如何解决。
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:标准轮组“第一个”元素位于最左侧或最右侧位置,因此如果您想轮播从顶部开始,您需要将轮播类型设置为iCarouselTypeCustom
并在carousel:itemTransformForOffset:baseTransform:
中提供变换,您可以从 iCarousel 源获取变换作为基础
【讨论】:
这其实是正确的答案。不要破解库 - 使用委托提供自定义转换,并从标准***实现中复制转换逻辑。 是的,这就是我所做的......使用 iCarouselTypeCustom 类型并实现了逻辑。感谢尼克的伟大图书馆。【参考方案2】:您实际上需要在transformForItemViewWithOffset
方法中更改CATransform3DTranslate
函数的z 变换值(即返回)。不过这有点骇人听闻。
为此,
打开您的iCarousel.m
文件
寻找-(CATransform3D)transformForItemViewWithOffset:(CGFloat)offset
方法
在switch case
语句中,转到iCarouselTypeWheel
,在其他部分,您需要更改行
return CATransform3DTranslate(transform, 0.0f, -radius, offset * 0.01f);
到
return CATransform3DTranslate(transform, 0.0f, -radius, 0.0f);
保存文件并运行项目,看看是否能得到想要的结果。
【讨论】:
以上是关于如何将 iCarousel 的当前视图置于 iCarouselTypeWheel 中其他视图的顶部的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 iCarousel 淡化 currentItem 之前的所有项目?
如何在 iOS 中将选定的背景视图添加到 iCarousel?