Я пытаюсь переключить две разные анимации, когда сегментированный элемент управления меняет значения. Однако либо анимация запускается для обоих разделов, либо анимация не воспроизводится.
вот мой код:
import UIKit
class ViewController: UIViewController {
let visibleFrames: [UIImage?] = [
UIImage(named: "visible01.jpg"),
UIImage(named: "visible02.jpg"),
UIImage(named: "visible03.jpg"),
UIImage(named: "visible04.jpg"),
UIImage(named: "visible05.jpg"),
UIImage(named: "visible06.jpg"),
UIImage(named: "visible07.jpg"),
UIImage(named: "visible08.jpg"),
UIImage(named: "visible09.jpg"),
UIImage(named: "visible10.jpg"),
UIImage(named: "visible11.jpg"),
UIImage(named: "visible12.jpg"),
UIImage(named: "visible13.jpg"),
UIImage(named: "visible14.jpg")
]
let infraredFrames: [UIImage?] = [
UIImage(named: "infared01.jpg"),
UIImage(named: "infared02.jpg"),
UIImage(named: "infared03.jpg"),
UIImage(named: "infared04.jpg"),
UIImage(named: "infared05.jpg"),
UIImage(named: "infared06.jpg"),
UIImage(named: "infared07.jpg"),
UIImage(named: "infared08.jpg"),
UIImage(named: "infared09.jpg"),
UIImage(named: "infared10.jpg"),
UIImage(named: "infared11.jpg"),
UIImage(named: "infared12.jpg"),
UIImage(named: "infared13.jpg"),
UIImage(named: "infared14.jpg")
]
var currentAnimationFrames: [UIImage?] = []
@IBOutlet weak var playbackSpeed:
UILabel!
@IBOutlet weak var startStopButton:
UIButton!
@IBOutlet weak var playbackStepper:
UIStepper!
@IBOutlet weak var imgView:
UIImageView!
@IBOutlet weak var chooseType:
UISegmentedControl!
@IBAction func changeType(_ sender: Any) {
if chooseType.selectedSegmentIndex == 0 {
currentAnimationFrames = visibleFrames as [UIImage?]
} else if chooseType.selectedSegmentIndex == 1 {
currentAnimationFrames = infraredFrames as [UIImage?]
}
}
@IBAction func changeSpeed(_ sender: Any) {
imgView.animationDuration = Double(-(playbackStepper.value) + 6)
imgView.startAnimating()
playbackSpeed.text = "14 frames every " + String(playbackStepper.value) + " Seconds"
if imgView.isAnimating{
imgView.stopAnimating()
startStopButton.setTitle("Play", for: UIControl.State())
} else {
imgView.startAnimating()
startStopButton.setTitle("Stop", for: UIControl.State())
}
}
@IBAction func playAnimation(_ sender: Any) {
if imgView.isAnimating{
imgView.stopAnimating()
startStopButton.setTitle("Play", for: UIControl.State())
} else {
imgView.startAnimating()
startStopButton.setTitle("Stop", for: UIControl.State())
}
}
override func viewDidLoad() {
super.viewDidLoad()
playbackSpeed.text = "14 frames every 1.0 seconds"
imgView.animationImages = currentAnimationFrames as [UIImage?] as? [UIImage]
imgView.animationDuration = 2
}
}
также предполагается, что скорость анимации будет изменяться в зависимости от значения шага, но при увеличении шага она должна быть на go медленнее, но когда я меняю шагер, всегда кажется, что при движении он становится быстрее вверх. любая помощь с этим была бы великолепна!