我有带有月亮图像的 UIImageView
。
moonImageContainerView
是 UIImageView
的 superView
我向 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
会消失到底部?
我该如何修复它?
最佳答案
嗯,我使用其余设置,没有看到你的情况。
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)
}
}
关于ios - 如何快速修复动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283609/