Я только начал разработку iOS и изучаю Swift и Xcode. У меня есть объект UIImageView в контроллере представления и вы хотите переместить этот UIImageView по экрану, пока он переключается между двумя изображениями. Вот код:UIImageView анимация продолжительностью вместе с анимационными образами
@IBOutlet weak var anImageView: UIImageView!
@IBAction func beginAnimation(sender: AnyObject) {
let imgListArray:[AnyObject] = [UIImage(named: "img1.png")!, UIImage(named: "img2.png")!]
anImageView.animationImages = imgListArray
anImageView.animationDuration = 0.5
anImageView.image = UIImage(named: "img1.png")
anImageView.startAnimating()
UIView.animateWithDuration(4.0, animations: {
self.anImageView.center = CGPoint(x: 600, y: 600)
}, completion: {finished in
self.anImageView.center = CGPoint(x:80,y:80)})
}
Проблема с координатами. UIImageView запускается за пределы экрана и не заканчивается на (80,80). Переключение в порядке.
Я думаю, мне нужно преобразовать координаты в пространство супервизора (?), Но мои попытки сделать это не были успешными. Например, я попробовал функцию конвертации, но не был успешным.
Любые рекомендации приветствуются!
Спасибо.
Вы используете ограничения для позиционирования изображения сначала? Если это так, вам нужно отрегулировать ограничения, а не местоположение фрейма, а затем изменить изменение ограничения, поместив '[self.view layoutIfNeeded]' в блок анимации. –
Спасибо, Рори. Да, были отмечены опции автоматического макета и размера. Я их не контролировал, и поведение было таким, как ожидалось. С наилучшими пожеланиями. –
Я думаю, что вы только что отложили проблему, отключив ограничения. Лучше обнять их, которых я нашел, или будущее будет полон для вас. В вашем случае принцип тот же, просто используйте ограничения вместо прямого управления кадрами и измените значения ограничений. Вы можете добавить ограничения как IBOutlets, чтобы вы могли легко изменять их значения в коде. –