虚线直到 uiview 中才结束

dotted line is not coming till the end in uiview

我正在尝试创建虚线,我已尝试使用以下代码:

 private func createDottedView(for view:UIView) {
        let width: CGFloat = 1
        let color: CGColor = UIColor.black.cgColor

        let caShapeLayer = CAShapeLayer()
        caShapeLayer.strokeColor = color
        caShapeLayer.lineWidth = width
        caShapeLayer.lineDashPattern = [9,3]
        let cgPath = CGMutablePath()
        let cgPoint = [CGPoint(x: view.layer.bounds.minX, y: 0), CGPoint(x: view.layer.bounds.maxX, y: 0)]
        cgPath.addLines(between: cgPoint)
        caShapeLayer.path = cgPath
        view.layer.addSublayer(caShapeLayer)
    }

但是这不会一直到最后,我怎样才能得到这条虚线直到最后?

我们可以在 UIView 上添加 trailingleading 约束,如下所示 storyboard

Added constrainsts to the lineView

Output of dotted UIView

由于 CAShapeLayer(),您可以使用将 uiview 设为虚线的图像 它可能会导致此类问题。所以你可以只下载一个类似的图像并将图像视图放在 uiview 中并使用图像使其缩放以填充它应该工作。

或者,如果您只想通过编码来完成此操作,您可以使用给定的代码实时更改代码,其余代码将正常工作。

let cgPoint =  [CGPoint(x: view.layer.bounds.minX, y: 0), CGPoint(x: 
view.layer.bounds.maxX+40, y: 0)]