Метод UIView.animate () в UIKit представляется полезным при реализации многих анимаций. Однако недавно я столкнулся с проблемой при реализации серии повторяющихся анимаций с разными таймаутами.
Предположим, у нас есть список изображений let images: [UIImage]
и просмотр изображений @IBOutlet weak var presentingImageView: UIImageView!
. Мы хотим, чтобы он менял свое изображение каждые 3,0 секунды, для этого случая мы напишем следующий код:
Timer.scheduledTimer(withTimeInterval: 3.0, repeats: true) { _ in
self.index += 1
}
UIView.animate(withDuration: 3.0,
delay: 0.1,
options: .repeat,
animations: {
self.presentingImageView.image = images[index]
})
И это будет работать, но что, если у нас также есть массив длительностей let durations: [TimeInterval]
и мы хотим менять изображения каждые duration[index]
секунд?