當同時使用Autolayout和代碼進行頁面布局時,會有沖突掐暮。當一個視圖已經(jīng)設置了約束磺浙,最好就不要再通過frame對視圖進行修改,因為兩者的沖突挟纱,往往會出現(xiàn)布局結果不是自己想要的,或者frame布局根本無效的境況腐宋。
但是有一種情況比較特殊紊服,那就是通過autolayout對父視圖進行了約束,然后通過代碼向子視圖中添加視圖的情況胸竞,在這種情況下欺嗤,代碼布局是有效地,但是也會出現(xiàn)一些小問題卫枝,本文的目的就是盡量找出這些問題煎饼,并且給出相應的解決方案。
1.父視圖設置了約束校赤,子視圖需要根據(jù)父視圖的frame進行布局吆玖。
在這種情況下,由于父視圖設置了約束马篮,所以在加載父視圖的時候父視圖的frame是會變化的衰伯。所以如果要用到父視圖的frame,需要在viewDidAppear或者viewDidLayoutSubviews中設置(viewDidLayoutSubviews先調用)积蔚。需要注意的是一旦頁面布局發(fā)生變化意鲸,viewDidLayoutSubviews就會被調用。
2.由于最近找到了一本書尽爆,所以暫時不想再更新這篇文章了怎顾,有珠玉在前,不敢獻丑了漱贱。把書名公布出來槐雾,autolayout和size class的用法在這本書中講的很詳細,媽媽再也不用擔心我的自動布局啦幅狮。
書名:iOS.8.by.Tutorials.2014.12募强,本人較笨,不喜歡復雜的方法崇摄,之前在網(wǎng)上看到的關于autolayout的文章不是講的太淺擎值,就是講述不清,直到看到這本書逐抑,我看英文版都覺得講的比網(wǎng)上的文章講的要清楚(似乎英文版一向講的都比較清楚)
說了這么多鸠儿,就是說,如果有autolayout不明白的地方,去看這本書中關于autolayout的章節(jié)吧进每,比在網(wǎng)上看文章好多啦汹粤!