AutoLayout好多好多不懂的 終于明白了

?AutoLayout這玩意越用越上癮 ? ?自從我學(xué)會了這個 ?還是那句話 能不用代碼就不用代碼?

這篇文章不講解AutoLayout 怎么使用 ?只是總結(jié)下最近學(xué)的東西 和更多你不知道的細(xì)節(jié)總結(jié)



本文大致講解個部分


1 . UIStackView

2. AutoLayout與Frame的關(guān)系

3.AutoLayout動畫




1 UIStackView

先推薦點資料 ?

UIStakView入門? ?iOS 9新功能 具體支持到幾我不清楚?

看完這個你以后布局更方便了 ?

舉個例子 AutoLayout分分鐘搞定等比例布局?之前我的帖子這樣做

現(xiàn)在有了更簡單的






2. AutoLayout與Frame的關(guān)系

曾經(jīng)有次我被面試官問了一個面試題 ? ? 如果你用了AutoLayout 再修改Frame 會有什么效果 有沒有什么不好的

看這問題 所有人都能猜到肯定有不好的 ?但是具體也不知道是啥 ?


看demo ?一個view



3.AutoLayout動畫


如果你用了AutoLayout ?那么做動畫的時候 ?你就不要再操作 Frame ?bounds center ?等position屬性

因為這些動畫都是臨時的 ?下次的View 被 setNeedsUpdateConstraint ?這些全都失效 ??

但是其他的可動畫屬性(Animation Properties) 還是可以的 如 Color ?alpha等?


1. 更新約束的內(nèi)容 ?




針對 Constraint 一掉要調(diào)用LayoutIfNeed() ?不然會造成不可預(yù)料的結(jié)果。 ?有可能下一刻動畫剩下 ?也有可能然并卵 ? ? ? 在NSLayoutConstraint中 ?唯一可變的 也就是 可set 可 get的屬性就 ? ?constant?

像其他FirstItem等是不可修改的 ? ? ?所以如果要修改參考物參看 下面的方法?


2 . ?替換約束的動畫?







添加約束可以通過 ?

self.view.addConstraint(<#T##constraint: NSLayoutConstraint##NSLayoutConstraint#>)

self.view.addConstraints(<#T##constraints: [NSLayoutConstraint]##[NSLayoutConstraint]#>)


在iOS 8中有更好的方法? newConstraint.active=true 就可以

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容