我有一個 imageView 應該根據每次變化的值上升或下降。
我保持對 imageView 底部約束的參考并根據常量值更改此常量。
這些相關代碼在我的 ViewController 中,其中我的 imageView 作為子視圖。
private var imageConstraint = 50.0
//viewDidLoad
imageView.snp.makeConstraints {
$0.width.height.equalTo(48)
$0.centerX.equalToSuperview()
$0.bottom.equalTo(-imageConstraint)
}
我嘗試將它放入 x 方法 imageView 中停留在同一個地方。
DispatchQueue.main.async {
unownedSelf.imageView.layoutIfNeeded()
}
如何修復和更改與更改值相同的約束?
PS:我不能把整個代碼,因為它太長了,所以我分享了相關部分。感謝你的理解。
uj5u.com熱心網友回復:
由于您使用的是 SnapKit,因此您需要使用它的.updateConstraints語法。
此示例將.imageConstraint在任何觸摸時在 50.0 和 -50.0 之間切換,并為影像視圖設定影片:
class SnapVC: UIViewController {
let imageView = UIImageView()
private var imageConstraint = 50.0
override func viewDidLoad() {
super.viewDidLoad()
if let img = UIImage(named: "myImage") {
imageView.image = img
}
view.addSubview(imageView)
imageView.snp.makeConstraints {
$0.width.height.equalTo(48)
$0.centerX.equalToSuperview()
$0.bottom.equalTo(-imageConstraint)
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
imageConstraint *= -1
imageView.snp.updateConstraints {
$0.bottom.equalTo(-imageConstraint)
}
UIView.animate(withDuration: 0.5, animations: {
self.view.layoutIfNeeded()
})
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471127.html
