iPhone - 轮播

标签 iphone objective-c ios carousel icarousel

我在我的应用程序中使用开源 iCarousel 来实现轮播控件。我使用的轮播类型是 iCarouselTypeRotary 并且图像在这种类型中线性排列。但是,我需要图像像所附图像中的旋转木马一样带来。我应该怎么做才能使我的旋转木马像下图中的样式那样向顶 View 倾斜一点?请帮忙。提前致谢。

enter image description here enter image description here

最佳答案

您可以手动实现 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

关于iPhone - 轮播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12246237/

相关文章:

ios - 使用 Storyboard在 UILabel 中的文本前后添加一个空格

ios - 当我将一个类从 iOS 7 导入到 iOS 8 时出错

ios - SwiftUI - 输入文本时防止 TextField 扩展

iphone - 在 native iphone 应用程序中跟踪网络应用程序

iphone - 在 iPhone 和 iPad 中实现 VOIP

iphone - xcode 中的重复 dylib 警告

ios - UITableViewCell 中的 mask 图像

ios - React Native AppDelegate.m 没有地方改localhost

iPhone:仅在横向模式下,第一次 addSubview 后,UITableViewController 无法正确旋转

objective-c - 在 Mac OS X 中以编程方式更改窗口高度超过屏幕高度