正常情况下,动画更新约束方式
// 初始代码
titleLabel = UILabel()
titleLabel.backgroundColor = .green
titleLabel.text = "测试文本"
titleLabel.textAlignment = .center
view.addSubview(titleLabel)
titleLabel.snp.makeConstraints { (make) in
make.size.equalTo(CGSize(width: 200, height: 200))
make.center.equalToSuperview()
}
// 更新约束代码
UIView.animate(withDuration: 2) {
self.titleLabel.snp.updateConstraints { (make) in
make.size.equalTo(CGSize(width: 50, height: 50))
}
self.view.layoutIfNeeded()
}
但是 UILabel
更改宽度、高度约束,动画会不正常 或者 没有动画效果。所以建议通过修改以下方式来设置UILabel
的动画
1、 leading
或者 trailing
或者 x
值
2、或者将 label
放到 contentView
里头,让 contentView
来做动画 。
要详细了解,可以参考
解释1
解释2
解释3