我正在尝试以编程方式创建虚线。然而,这条线并没有贯穿整个屏幕。
我一直在使用此SO answer来帮助我构造虚线。这是我得到的输出。
这是我的代码
extension UIView{
func addDashedBorder() {
//Create a CAShapeLayer
let shapeLayer = CAShapeLayer()
shapeLayer.strokeColor = UIColor.red.cgColor
shapeLayer.lineWidth = 2
// passing an array with the values [2,3] sets a dash pattern that alternates between a 2-user-space-unit-long painted segment and a 3-user-space-unit-long unpainted segment
shapeLayer.lineDashPattern = [2,3]
let path = CGMutablePath()
path.addLines(between: [CGPoint(x: 0, y: 0),
CGPoint(x: self.frame.width, y: 0)])
shapeLayer.path = path
layer.addSublayer(shapeLayer)
}
}
我该如何修正我的代码,使行遍及整个屏幕?
使用self.bounds.width
而不是self.frame.width
。
摘自UIView
的文档:
框架
框架矩形,它描述了视图的位置,superview's坐标系中的尺寸。
而:
界限
边界矩形,它描述了视图的位置和大小其own坐标系。