我使用开源,iCarousel
在我的应用程序中带上轮播控件。我使用的轮播类型是iCarouselTypeRotary
,图像在这种类型中是线性排列的。但是,我需要像附加图像中的轮播一样带来图像。我应该怎么做才能使我的旋转木马像下图中的样式那样稍微倾斜到顶视图?请帮忙。提前致谢。
我使用开源,iCarousel
在我的应用程序中带上轮播控件。我使用的轮播类型是iCarouselTypeRotary
,图像在这种类型中是线性排列的。但是,我需要像附加图像中的轮播一样带来图像。我应该怎么做才能使我的旋转木马像下图中的样式那样稍微倾斜到顶视图?请帮忙。提前致谢。
您可以手动实现 3D 倾斜:
在iCarousel.m
:574
return CATransform3DTranslate(transform, radius * sin(angle), 0.0f, radius * cos(angle) - radius);
改成:
float tilt = MAX_TILT_VALUE * cos(angle); // greater angle means greater vertical offset
return CATransform3DTranslate(transform, radius * sin(angle), tilt, radius * cos(angle) - radius);
为了使代码清晰和可重用,将倾斜偏移作为选项实现(类似于iCarouselOptionArc
)。
PS:如果你想要透视缩放,你需要添加cos(angle)
类似于tilt
.
使用样式检查:iCarouselTypeWheel
使用水平轮根据需要设置轮的半径。我已经在垂直轮式中做到了这一点。但我认为它应该使用水平轮式的外观。