前陣子已經有寫一篇SnapKit的基礎用法,相信大家對SnapKit有基礎的瞭解了。
傳送門:
https://ithelp.ithome.com.tw/articles/10243094
//讓當前視圖 的 上下左右(top,left,bottom,right) 等於 view2
make.edges.equalTo(view2)
//當前視圖寬高 >= titleLabel
make.size.greaterThanOrEqualTo(titleLabel)
//當前視圖與 button1中心相同 (centerX 和 centerY)
make.center.equalTo(button1)
boxInner.snp.makeConstraints { (make) -> Void in
make.edges.equalTo(boxOutter).inset(UIEdgeInsetsMake(10, 15, 20, 25))
}
更新某個約束或某幾個約束的常量值,你就可以使用updateConstraints而不是makeConstraints。
這個方法可以調用多次,會相應setNeedsUpdateConstraints, 在控制器中,可以寫在override func updateViewConstraints()方法裡面(當然也可以寫在你想要什麼時候更新的點擊事件裡面)
出處:https://www.jianshu.com/p/2bad53a2a180
建立約束
觸發條件後更新約束
結果卻出乎意料的。
從錯誤的地方反推回去,updateLayoutConstraint是為nil,那麼為什麼為nil了再往上走。
發現問題了multiplier不一樣導致了返回false。
後來我把約束條件全部設成常數,就能正常運作了,目前問題還沒完全釐清。