我的目标是点击按钮来切换contentMode: scaleAspectFit & scaleAspectFill和动画。
@IBAction func toggleContentModeAction(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
if sender.isSelected {
UIView.animate(withDuration: 0.3) {
self.popImageView.contentMode = .scaleAspectFit
self.view.layoutIfNeeded()
}
}else {
UIView.animate(withDuration: 0.3) {
self.popImageView.contentMode = .scaleAspectFill
self.view.layoutIfNeeded()
}
}
}但对我的目标无效。请帮我修理一下,谢谢柬埔寨的帮助。
发布于 2017-10-12 04:41:00
contentMode本身不是一个可动的属性。但是您可以使用transition(with:duration:options:animations:completion:)在视图的两种不同的呈现之间进行动画处理。
@IBAction func didTapButton(_ sender: UIButton) {
let contentMode: UIViewContentMode = imageView.contentMode == .scaleAspectFill ? .scaleAspectFit : .scaleAspectFill
UIView.transition(with: imageView, duration: 1, options: .transitionCrossDissolve, animations: {
self.imageView.contentMode = contentMode
}, completion: nil)
}这会产生:

https://stackoverflow.com/questions/46701140
复制相似问题