пунктирная линия не доходит до конца в uiview - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь создать пунктирную линию, я пробовал использовать следующий код:

 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)
    }

Но это не до конца, как я могу получить эту пунктирную линию до конца?

this is what i am getting

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Вы можете использовать запотевшее изображение, чтобы сделать uiview пунктирной линией из-за функции CAShapeLayer (). Это может вызвать проблемы такого типа. Таким образом, вы можете просто загрузить похожее изображение и поместить представление изображения в uiview и использовать изображение, чтобы масштабировать его для заполнения, оно должно работать.

Или, если вы хотите сделать это только с кодированием, вы можете изменить свой код с данным live кода, остальная часть кода будет работать нормально.

let cgPoint =  [CGPoint(x: view.layer.bounds.minX, y: 0), CGPoint(x: 
view.layer.bounds.maxX+40, y: 0)]
0 голосов
/ 07 мая 2020

Мы можем добавить ограничения trailing и leading в UIView, как показано ниже в storyboard.

Добавлены ограничения для lineView

Вывод пунктирного UIView

...