Переместить объект пальцем по траектории [Swift]
У меня есть круг, на мой взгляд, с небольшим овалом, который можно перемещать по этому большому кругу, идея перемещения маленького овала состоит в том, чтобы изменить время на часах. Я пытаюсь переместить овал, но только следуя по пути, чтобы он не вышел из круга. Как будто это была железная дорога, и поезд следует только по железной дороге, но в то же время следует за положением пальца. Здесь я прикрепляю изображение
Я попытался создать анимацию, и, возможно, использовать эту анимацию, чтобы затем следовать за пальцем. Я действительно не знаю, как это сделать. Любая помощь, пожалуйста?
Вот мой код для анимации (это не работает):
let customPath = UIBezierPath()
customPath.move(to: CGPoint.init(x: 160, y: 165))
customPath.addLine(to: CGPoint.init(x: 260, y: 245))
customPath.addLine(to: CGPoint.init(x: 165, y: 365))
customPath.addLine(to: CGPoint.init(x: 60, y: 260))
let movingImage = UIImage(named: "MoveOval")
let movingLayer = CALayer()
movingLayer.anchorPoint = CGPoint.zero
movingLayer.contents = moveOval
movingLayer.frame = CGRect.init(x: 0.0, y: 0.0, width: (movingImage?.size.width)!, height: (movingImage?.size.height)!)
self.view.layer.addSublayer(movingLayer)
let pathAnimation = CAKeyframeAnimation(keyPath: "anim")
pathAnimation.duration = 4.0
pathAnimation.path = customPath.cgPath
pathAnimation.calculationMode = kCAAnimationLinear
movingLayer.add(pathAnimation, forKey: "anim")