問題描述:
在使用AutoLayout代碼布局時,有時會碰到父視圖是TabBarController的一個子視圖所宰,當我們試圖將一個View約束到父視圖的底部時绒尊,會發(fā)現(xiàn)View會被TabBar擋住,比如下圖:
因為在iOS7以上的版本中,視圖是默認擴展到全屏的仔粥,從(0,0)開始一直到屏幕的右下角婴谱。
處理方法
因為底部標簽欄的高度默認為49,我們可以設置底部視圖的底部約束為49躯泰,這樣就可以解決問題了谭羔,但是如果我們有另一個需求,即購物車界面是TabBarController的一個子視圖,也有不作為TabBarController子視圖的時候斟冕,這時候進行跳轉到購物車頁面的時候口糕,49約束的問題就依舊存在!?纳摺景描!
為了讓視圖符合我們的需求十办,我們可以在父視圖的ViewController中進行如下設置:
- OC代碼:
self.edgesForExtendedLayout = UIRectEdgeNone;
- Swift代碼:
this.EdgesForExtendedLayout = UIRectEdge.None;
結果:
這樣視圖就可以正常顯示了,如下圖:
附注
此屬性也適用于導航欄
當viewcontroller沒有scrollview的時候超棺,系統(tǒng)不會自動為其適配64高度向族,加上該屬性就可以自動適配