如何将 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?

如何在 iCarousel 视图中单击缩放图像?

如何调整 iCarousel 类型线性视图的框架以移动到顶部

如何使 iCarousel 视图居中

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