ios - 如何在 swift 中动画绘制 UIBezierPath

标签 ios swift animation uibezierpath

有人知道如何在自定义 View 中为 UIBezierPath 的绘图设置动画吗?所以看起来 iPhone 拿起了一支笔并在屏幕上绘图,速度足够慢,可以看到它。

就说我有如下路径:

var bezierPath = UIBezierPath()
bezierPath.moveToPoint(CGPointMake(49.5, 14.5))
bezierPath.addCurveToPoint(CGPointMake(106.5, 14.5), controlPoint1: CGPointMake(106.5, 14.5), controlPoint2: CGPointMake(106.5, 14.5))
bezierPath.addCurveToPoint(CGPointMake(119.5, 26.5), controlPoint1: CGPointMake(106.5, 14.5), controlPoint2: CGPointMake(119.5, 14.5))
bezierPath.addCurveToPoint(CGPointMake(119.5, 75.5), controlPoint1: CGPointMake(119.5, 38.5), controlPoint2: CGPointMake(119.5, 75.5))
bezierPath.addCurveToPoint(CGPointMake(106.5, 88.5), controlPoint1: CGPointMake(119.5, 75.5), controlPoint2: CGPointMake(122.5, 88.5))
bezierPath.addCurveToPoint(CGPointMake(49.5, 88.5), controlPoint1: CGPointMake(90.5, 88.5), controlPoint2: CGPointMake(49.5, 88.5))
bezierPath.addCurveToPoint(CGPointMake(36.5, 75.5), controlPoint1: CGPointMake(49.5, 88.5), controlPoint2: CGPointMake(36.5, 89.5))
bezierPath.addCurveToPoint(CGPointMake(36.5, 26.5), controlPoint1: CGPointMake(36.5, 61.5), controlPoint2: CGPointMake(36.5, 26.5))
bezierPath.addCurveToPoint(CGPointMake(49.5, 14.5), controlPoint1: CGPointMake(36.5, 26.5), controlPoint2: CGPointMake(35.5, 14.5))
UIColor.redColor().setFill()
bezierPath.fill()
UIColor.blackColor().setStroke()
bezierPath.lineWidth = 10
bezierPath.stroke()

这会绘制一个圆角矩形,并写在自定义类的 drawRect 函数中。

有谁知道如何为这幅画制作动画吗?

最佳答案

您可以考虑使用 CAShapeLayer并为 strokeEnd 属性设置动画(您可以使用 CABasicAnimation 来控制动画的细节)。 This post有一个例子。

关于ios - 如何在 swift 中动画绘制 UIBezierPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737475/

相关文章:

javascript - Velocity JS 和动态添加的 DOM 元素

javascript - 如何正确使用css animate?

ios - iOS 模拟器上的 AVAuthorizationStatusNotDetermined

ios - swift 表格 View 中的字母部分

ios - 如何根据时区转换日期

swift - 如何从 HTTPURLResponse 保存 Cookie

objective-c - Cydia 应用程序文档文件夹未创建

iphone - 如何检查是否结束xml解析

ios - 在 Xcode 项目中添加 Pods 或 CocoaPods 的最快方法

javascript - 如何实现jQuery动画排队?