动画 layer.mask(不是形状图层的 .path)
Animate layer.mask (not the .path of a shape layer)
动画化 CAShapeLayer
的路径相对容易。
(这方面的好文章:)
let shapeLayer = CAShapeLayer()
shapeLayer.path = .. some bezier
... CABasicAnimation(keyPath: "path")
但实际上可以在 UIView 中设置动画 layer.mask 吗?
回想一下
UIView 的实际 layer.mask 实际上会屏蔽 UIView 的子视图。
带有路径的 CAShapeLayer 不会屏蔽 UIView 的子视图;它只是掩盖自己并在该视图上创建漂亮的图片。
你能为 UIView 的 .layer.mask 设置动画吗?
是的,你可以。为此,我创建了一系列 "wipe" 过渡动画。您只需将 CAShapeLayer
设为蒙版,然后为该蒙版形状图层的路径设置动画。 (在我的例子中,我对路径的开始或结束 属性 进行了动画处理。)
此时线程已经很老了,代码是用 Objective-C 编写的,但这里有一个 SO 线程解释了如何使用 [=10= 创建 "clock wipe" 动画] 作为图层蒙版。
How do you achieve a "clock wipe"/ radial wipe effect in iOS?
动画化 CAShapeLayer
的路径相对容易。
(这方面的好文章:
let shapeLayer = CAShapeLayer()
shapeLayer.path = .. some bezier
... CABasicAnimation(keyPath: "path")
但实际上可以在 UIView 中设置动画 layer.mask 吗?
回想一下
UIView 的实际 layer.mask 实际上会屏蔽 UIView 的子视图。
带有路径的 CAShapeLayer 不会屏蔽 UIView 的子视图;它只是掩盖自己并在该视图上创建漂亮的图片。
你能为 UIView 的 .layer.mask 设置动画吗?
是的,你可以。为此,我创建了一系列 "wipe" 过渡动画。您只需将 CAShapeLayer
设为蒙版,然后为该蒙版形状图层的路径设置动画。 (在我的例子中,我对路径的开始或结束 属性 进行了动画处理。)
此时线程已经很老了,代码是用 Objective-C 编写的,但这里有一个 SO 线程解释了如何使用 [=10= 创建 "clock wipe" 动画] 作为图层蒙版。
How do you achieve a "clock wipe"/ radial wipe effect in iOS?