测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最后发布 | 2017年8月 |
SwiftSwift 版本 | 3.1 |
SPM支持 SPM | ✗ |
由Dan Koza维护。
使用Swift构建的类似Flipboard的动画。
import DJKFlipper
func numberOfPages(flipper:DJKFlipperView) -> NSInteger
func viewForPage(page:NSInteger, flipper:DJKFlipperView) -> UIView
func viewForPage(page: NSInteger, flipper: DJKFlipperView) -> UIView {
return yourViewControllerArray[page].view
}
http://stackoverflow.com/a/26266025
我尝试使用CALayers和Core Animation解决这个问题。我有两个主要的图层来完成这个动画,一个静态图层和一个动画图层。
静态图层是整个视图的大小。这个图层不动画,它只持有两张图片,左右两侧(左右两侧的图片是你想要翻页的页面的截图)。动画图层是整个视图大小的一半,这个图层动画执行翻页动画。动画图层的正面和背面也是当前页面和下一页的截图。
例如,假设我们想翻到下一页。
静态图层的左侧将包含当前页面左侧的截图。右侧将包含下一页右侧的截图。动画图层将位于静态视图上方,其正面将包含当前页面右侧的截图。动画图层的背面将包含下一页左侧的截图。
当你用手指滑动时,你将在动画图层的y轴上进行CATransform3DRotate变换。因此,当你的手指从屏幕的右侧移动到左侧时,动画图层将翻转,并显示出静态视图的右侧和自身的背面。
以下是实现层(动画图层CALayer)翻页动画的基本代码。
var t = CATransform3DIdentity
t.m34 = 1.0/850 //Adds depth to the animation
t = CATransform3DRotate(t, newRadianAngleValue, 0, 1, 0)
CATransaction.begin()
CATransaction.setAnimationDuration(0)
yourAnimationCALayer.transform = t
CATransaction.commit()