Я просто хочу переместить стрелку с фотографией руки с ее траекторией, теперь траектория только движется без изображения.
- Создан UIBezierPath и работает нормально
- создал CAShapeLayer для обоих "UIBezierPath"
- создал CALayer для моего изображения
- Добавлен CALayer в CAShapeLayer
- создал нужную анимацию
- Добавить анимацию в CAShapeLayer
- Добавить CAShapeLayer на мой взгляд
Путь анимирован очень хорошо, но изображение руки не анимировано, я пробовал много способов, но не могу найти причину.
Я попытался добавить изображение в качестве отдельного подпредставления и применил CAKeyFrameAnimations, но он тоже не работает
override func draw(_ rect: CGRect) {
let path = UIBezierPath()
path.lineWidth = 2
path.move(to: CGPoint(x: self.frame.width - 100, y: self.frame.height - 280))
path.addCurve(to: CGPoint(x: self.frame.width - 100, y: self.frame.height - 280 - 190),
controlPoint1: CGPoint(x: self.frame.width - 50, y: self.frame.height - 280 - 100),
controlPoint2: CGPoint(x: self.frame.width - 60, y: self.frame.height - 280 - 140))
let shapelayer: CAShapeLayer = CAShapeLayer()
shapelayer.path = path.cgPath
shapelayer.strokeColor = UIColor.red.cgColor
shapelayer.lineWidth = 2
shapelayer.fillColor = UIColor.clear.cgColor
let handLayer: CALayer = CALayer()
handLayer.frame = CGRect(x: self.frame.width - 100, y: self.frame.height - 280, width: 40, height: 30)
handLayer.contents = UIImage(named: "leftHand")?.cgImage
shapelayer.addSublayer(handLayer)
let animation: CABasicAnimation = CABasicAnimation(keyPath: "strokeEnd")
animation.fromValue = 0.0
animation.toValue = 1.0
animation.duration = 2.0
shapelayer.add(animation, forKey: "myStroke")
self.layer.addSublayer(shapelayer)
}