快速绘制一条全角的虚线?

问题描述 投票:0回答:1

我正在尝试以编程方式创建虚线。然而,这条线并没有贯穿整个屏幕。

我一直在使用此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)


    }
}

我该如何修正我的代码,使行遍及整个屏幕?

ios swift uiview core-animation
1个回答
0
投票

使用self.bounds.width而不是self.frame.width

摘自UIView的文档:

框架

框架矩形,它描述了视图的位置,superview's坐标系中的尺寸。

而:

界限

边界矩形,它描述了视图的位置和大小其own坐标系。

© www.soinside.com 2019 - 2024. All rights reserved.