Всякий раз, когда я пытаюсь анимировать объекты, которые я запрограммировал на экран, с помощью автоперестановок, возникает много проблем. Когда я пытался анимировать UIImageView, вместо перехода к следующему изображению он дублировал бы объект. Вот код для макета:
icon.topAnchor.constraint(equalTo: circle.bottomAnchor, constant: 10).isActive = true
icon.centerXAnchor.constraint(equalTo: circleView.centerXAnchor).isActive = true
icon.widthAnchor.constraint(equalToConstant: 40).isActive = true
icon.heightAnchor.constraint(equalToConstant: 40).isActive = true
Вот код для анимации:
private func animateIcon(){
UIView.transition(with: icon,
duration: 0.75,
options: .transitionCrossDissolve,
animations: { self.icon.image = UIImage(named: "CultureIcon") },
completion: nil)
}
Когда я добавляю UIImageView на экран, используя его рамку, анимация работает точно так, как задумано.
РЕДАКТИРОВАТЬ: Я думаю, что нашел проблему. Я вызывал функцию установки для этого представления в viewDidLayoutSubviews (). Как только я убрал функции оттуда, переходы сработали.
Однако я также использую функцию, предоставляемую @AmberK, которая, возможно, внесла свой вклад в решение!