Как я могу взаимодействовать с представлениями, пока они продолжают анимироваться в UIKit (swift 4)? - PullRequest
0 голосов
/ 12 июня 2018

У меня есть набор фигур (UIView s), которые можно перемещать по экрану с помощью UIPanGestureRecognizer, и которые должны непрерывно покачиваться после запуска пользователем анимации.Но я хочу, чтобы они продолжали покачиваться, даже когда пользователь поднимает один и перемещает его.Практически происходит то, что когда пользователь выбирает фигуру, он прекращает анимацию, а когда он кладет ее обратно, анимация даже не перезапускается.

Вот некоторый код для контекста:

func wiggle() {
    UIView.animate(withDuration: 0.15, options: [.repeat, .autoreverse, .allowUserInteraction], animation: {
        self.view.subviews.forEach { $0.transform = CGAffineTransform(rotationAngle: CGFloat.pi/8) })
}

func pickUpShape() {
     [.....]
     shape.transform = CGAffineTransform(scaleX: 2, scaleY: 2)
     shape.layer.shadowOpacity = 0.7
}

func moveShape() {
    //apply UIPanGestureRecognizer
}

func placeShape() {
    [.....]
    shape.transform = .identity
    shape.layer.shadowOpacity = 0
}

Что я хочу, чтобы это было, если пользователь запускает действие покачивания, выбирает фигуру и перемещает ее, я хочу, чтобы фигура продолжала покачиваться под пальцем пользователя, и после того, как он положил ее вниз.

...