рисовать округлые линии iOS Swift - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь создать приложение, которое рисует фрактальное дерево.Мне удалось создать код, который генерирует все начальные и конечные точки из всех строк.Мне также удалось нарисовать линии, но сейчас они действительно квадратные и хотят, чтобы у них были закругленные углы.Я использовал UIView и UIBezierPaths для рисования линий внутри функции рисования вида.Чтобы получить точки, у меня есть массив объектов Branch внутри класса Sigleton.Объект ветвления имеет, помимо прочего, начальную точку и конечную точку, которые являются кортежами ((x: Double, y: Double)).

    override func draw(_ rect: CGRect) {
    super.draw(rect)
    UIColor.blue.setStroke()
    for branch in Tree.shared.branches{
        let path = UIBezierPath()
        print(branch.startingPoint)
        print(branch.endingPoint)
        path.move(to: CGPoint(x: branch.startingPoint.x, y: branch.startingPoint.y))
        path.addLine(to: CGPoint(x: branch.endingPoint.x, y: branch.endingPoint.y))
        path.lineWidth = 3
        path.stroke()
    }

}

Как я могу сделать закругленные углы?

Также, если кто-то знает бесплатную библиотеку, которая могла бы облегчить это, я тоже заинтересован.

edit: Меня не интересует, как создать дерево, я уже сделал эту часть кода, которую янужна помощь с рисованием линий.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Вам не нужна библиотека, вам просто нужно потратить немного времени на изучение того, как рисовать кривые с помощью UIBezierPath, а кривые - одна из тех вещей, которые лучше всего подходят для этого класса.Ключом к построению кривых является понимание того, как работают контрольные точки. Вот ответ Я писал некоторое время назад о том, как плавно соединить изогнутые линии, что, я думаю, поможет.Поиграйте с -addCurveToPoint:controlPoint1:controlPoint2:.

Если вы на самом деле не хотите кривых, а просто хотите, чтобы углы были округлены, а не заострены, тогда все, что вам нужно сделать, это установитьlineJoinStyle до kCGLineJoinRound.

0 голосов
/ 18 февраля 2019

О закругленных углах некоторых видов, просто установите параметры ниже:

func adjustView(_ view: UIView){
     view.layer.borderWidth = 2.0
     view.layer.borderColor = UIColor.red
     view.layer.cornerRadius = 10
     view.clipsToBounds      = true
     view.backgroundColor = UIColor.white
    }

Если вы хотите больше информации, проверьте текущую документацию о свойстве слоя: https://developer.apple.com/documentation/uikit/uiview/1622436-layer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...