如何解决是否可以只显示/描边 UIBezierPath 的一部分?
我已经定义了一个 UIBezierPath 形状(由各种线段组成),但根据场景,我只希望它的某些部分可见。这可能吗?
我最初的想法是在为 UIBezierPath 设置动画时如何将 .fromValue
设置为 .toValue
。我可以设置某种“当前值”(我认为存在,但仅作为 getOnly 属性)以在动画上下文之外完成类似的操作吗?
我想到的另一种方法是将我的路径视为一种“模板”路径,然后将其分解为各种子路径,但我希望有一种更简单/更直接的方法(除非这种方法是比我预期的要容易......)。
解决方法
UIBezierPath
没有,但是如果您将路径添加到 CAShapeLayer
,您可以控制 strokeStart
和 strokeEnd
。
在操场上试试这个:
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: 10,y: 10))
path.addLine(to: CGPoint(x: 20,y: 0))
path.addLine(to: CGPoint(x: 30,y: 10))
let layer = CAShapeLayer()
layer.path = path.cgPath
layer.strokeColor = UIColor.red.cgColor
layer.fillColor = UIColor.clear.cgColor
// Note these lines
layer.strokeStart = 0.2 // start at 20% of the way
layer.strokeEnd = 0.8 // end at 80% of the way
layer.lineWidth = 2
let view = UIView(frame: CGRect(x: 0,y: 0,width: 50,height: 50))
view.layer.addSublayer(layer)
以上产生:
没有设置笔划起点和终点的两条线,视图看起来像:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。