Я пытаюсь создать приложение, которое рисует объект для пользователя. Теперь у меня есть один из этих объектов, который состоит из массива типа [UIBezierPath]
. Затем я использую цикл, чтобы изменить все UIBezierPath
в массиве на CGPath
, а затем хочу анимировать эти пути, рисуемые один за другим. Однако, когда я пробую этот код сейчас, он не работает, и я не могу найти никакой полезной информации об этом в Интернете. Этот код используется для преобразования массива macbookPath
, состоящего из UIBezierPath
, в CGPath
:
for path in macbookPath {
drawingPath.append(path.cgPath)
}
И затем я использую этот код, чтобы попытаться нарисовать путь:
for cgPath in drawingPath {
shapeLayer.path = cgPath
}
Это остальная часть кода функции drawForm()
, которая должна отрисовывать форму в представлении с именем aiDrawView
:
@objc func drawForm() {
var drawingPath = [CGPath]()
var macbookPath = Forms.MacbookForm()
let shapeLayer = CAShapeLayer()
shapeLayer.frame = aiDrawView.bounds
for path in macbookPath {
drawingPath.append(path.cgPath)
}
for cgPath in drawingPath {
shapeLayer.path = cgPath
}
let strokeEndAnimation = CABasicAnimation(keyPath: "strokeEnd")
strokeEndAnimation.duration = 2.0
strokeEndAnimation.fromValue = 0.0
shapeLayer.add(strokeEndAnimation, forKey: "strokeEndAnimation")
}
Я новичок в CAShapeLayer
, CABasicAnimation
и UIBezierPath
, поэтому буду очень признателен за любую помощь!!! :D
toValue
в 1. Это должно работать, но было бы безопаснее явно установитьtoValue
в 1.0 - person Duncan C   schedule 26.03.2018