Как исправить анимацию в Swift? - PullRequest
0 голосов
/ 13 ноября 2018

У меня UIImageView с изображением луны.
А moonImageContainerView является superView для UIImageView
И я добавил жест смахивания к moonImageContainerView.

Если проведите пальцем вверх,

self.titleLabel.isHidden = false

UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
    self.moonImageContainerView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
    self.moonImageContainerView.center.y = self.view.center.y
}, completion: nil)

Вы можете увидеть результат с GIF
https://imgur.com/a/ftShkpO


А теперь, если я добавлю только self.titleLabel.text = "MY TOPIA"
Моя анимация перерыв.

self.titleLabel.text = "MY TOPIA" // Just added this line.
self.titleLabel.isHidden = false

UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
    self.moonImageContainerView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
    self.moonImageContainerView.center.y = self.view.center.y
}, completion: nil)

Вы можете увидеть результат с GIF
https://imgur.com/a/y57fPlA

Почему moonImageContainerView исчезает на дне?
Как я могу это исправить?

1 Ответ

0 голосов
/ 13 ноября 2018

Ну, я использую настройки отдыха и не видел ваш случай.

    import UIKit

    class ImageViewController: UIViewController {

        @IBOutlet  var moonImageContainerView: UIView!
        @IBOutlet  var titleLabel: UILabel!

        override func viewDidLoad() {
        super.viewDidLoad()

        let pan =  UISwipeGestureRecognizer.init(target: self, action: #selector(pp(_:)))
        pan.direction = .up
        moonImageContainerView.addGestureRecognizer(pan)

        }

        @objc func pp(_ pan: UISwipeGestureRecognizer){
        self.titleLabel.text = "MY TOPIA"
        self.titleLabel.isHidden = false

        UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
        self.moonImageContainerView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
        self.moonImageContainerView.center.y = self.view.center.y
        }, completion: nil)
        }

    }
...