如何解决UIBezierPath在封闭区域内填充
我试图了解我是否可以填写使用UIBezierPath
绘制的封闭区域。
这是我用来在UIButton
内绘制不规则形状的代码:
import UIKit
@IBDesignable class DrawingBox : UIButton {
let strokeColor : UIColor = .systemBlue
let fillColor : UIColor = .purple
let clearColor : UIColor = .clear
override func draw(_ rect: CGRect) {
clipsToBounds = true
strokeColor.setStroke()
fillColor.setFill()
let bp = UIBezierPath(rect: rect)
bp.lineWidth = 6.0
bp.move(to: p(50,50))
bp.addLine(to: p(100,20))
bp.addLine(to: p(200,50))
bp.addLine(to: p(300,70))
bp.addLine(to: p(240,150))
bp.addLine(to: p(140,100))
bp.close()
bp.stroke()
bp.fill(with: CGBlendMode.colorDodge,alpha: 1.0)
}
private func p(_ x: CGFloat,_ y: CGFloat) -> CGPoint {
return CGPoint(x: x,y: y)
}
}
产生这种效果:
这几乎是我想要的;我希望填充仅发生在我绘制的形状内。我注意到,如果我只说bp.fill()
,整个视图将被紫色填充。所有指针都表示感谢,谢谢。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。