AutoLayout和程式碼佈局

weixin_34116110發表於2015-12-03

當同時使用Autolayout和程式碼進行頁面佈局時,會有衝突。當一個檢視已經設定了約束,最好就不要再通過frame對檢視進行修改,因為兩者的衝突,往往會出現佈局結果不是自己想要的,或者frame佈局根本無效的境況。

但是有一種情況比較特殊,那就是通過autolayout對父檢視進行了約束,然後通過程式碼向子檢視中新增檢視的情況,在這種情況下,程式碼佈局是有效地,但是也會出現一些小問題,本文的目的就是儘量找出這些問題,並且給出相應的解決方案。

1.父檢視設定了約束,子檢視需要根據父檢視的frame進行佈局。

在這種情況下,由於父檢視設定了約束,所以在載入父檢視的時候父檢視的frame是會變化的。所以如果要用到父檢視的frame,需要在viewDidAppear或者viewDidLayoutSubviews中設定(viewDidLayoutSubviews先呼叫)。需要注意的是一旦頁面佈局發生變化,viewDidLayoutSubviews就會被呼叫。

2.由於最近找到了一本書,所以暫時不想再更新這篇文章了,有珠玉在前,不敢獻醜了。把書名公佈出來,autolayout和size class的用法在這本書中講的很詳細,媽媽再也不用擔心我的自動佈局啦。

書名:iOS.8.by.Tutorials.2014.12,本人較笨,不喜歡複雜的方法,之前在網上看到的關於autolayout的文章不是講的太淺,就是講述不清,直到看到這本書,我看英文版都覺得講的比網上的文章講的要清楚(似乎英文版一向講的都比較清楚)

說了這麼多,就是說,如果有autolayout不明白的地方,去看這本書中關於autolayout的章節吧,比在網上看文章好多啦!

相關文章