Перемещайте объект пальцем по пути [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")

person Andres Leal    schedule 24.06.2016    source источник
comment
Попробуйте адаптировать этот ответ.   -  person rob mayoff    schedule 25.06.2016
comment
Спасибо @robmayoff, я не получаю obj-c, не могли бы вы сказать мне, как будет выглядеть первая часть typealias и расширение. Я не понимаю, почему есть файл h и m. Спасибо. Не волнуйся, я могу понять другие части   -  person Andres Leal    schedule 25.06.2016
comment
Изучить немного Objective-C — это лучшее, что вы можете сделать, чтобы стать лучшим программистом iOS, из-за большого количества информации о программировании iOS, доступной только в Objective-C (например, ответ, который я связал).   -  person rob mayoff    schedule 25.06.2016