self.view.frame的佈局問題
轉自http://blog.csdn.net/zww1984774346/article/details/51730357
如果設定成 self.edgesForExtendedLayout = UIRectEdgeBottom;那麼就會self.view.frame是從navigationBar下面開始計算一直到螢幕底部;
如果設定成 self.edgesForExtendedLayout = UIRectEdgeNone;那麼就會self.view.frame是從navigationBar下面開始計算一直到螢幕tabBar上部;
如果設定成 self.edgesForExtendedLayout = UIRectEdgeTop;那麼就會self.view.frame是從navigationBar上面計算面開始計算一直到螢幕tabBar上部;
iOS7以上系統,self.navigationController.navigationBar.translucent預設為YES,self.view.frame.origin.y從0開始(螢幕最上部)。
此時若是新增程式碼self.edgesForExtendedLayout = UIRectEdgeNone(iOS7.0以後方法);self.view.frame.origin.y會下移64畫素至navBar下方開始。但是此時當push到一個新的controller之前給當前螢幕截圖的時候[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];,由於navBar是透明的,會出現64畫素的黑色區域。
此時只需要把self.navigationController.navigationBar.translucent=NO即可,不需要加程式碼self.edgesForExtendedLayout;
iOS7之後也增加了一個self.tabBarController.tabBar.translucent的屬性,預設為YES。當應用同時使用navBar和TabBar的時候。設定self.tabBarController.tabBar.translucent=NO並且self.navigationController.navigationBar.translucent=NO時候,得到self.view.frame—>{{0, 64}, {320, 455}}。檢視的高度也改變為navBar和tabBar之間的455畫素。當self.navigationController.navigationBar.translucent=YES並且self.tabBarController.tabBar.translucent=NO的時候self.view.frame—>{{0, 0}, {320, 519}};其都為YES的時候self.view.frame—>{{0, 0}, {320, 568}};
注意:設定self.edgesForExtendedLayout = UIRectEdgeNone;的時候會使得navBar和tabBar都不佔空間。self.view.frame—>{{0, 64}, {320, 455}}。此時iOS7預設navBar和tabBar都是透明的。截圖的時候需要注意。
相關文章
- 關於rem佈局問題REM
- 一個窗體佈局的問題
- AndroidUI佈局問題總結AndroidUI
- android 相對佈局,程式碼建立imageview,佈局居中問題AndroidView
- 【佈局技巧】Flex 佈局下居中溢位滾動截斷問題Flex
- CSS 佈局經典問題初步整理CSS
- bootstrap 響應式佈局 居中問題boot
- dcat-admin card的chart佈局問題
- 常見的佈局類問題及面經
- 有趣的CSS題目(6): 全相容的多列均勻佈局問題CSS
- 關於css佈局、居中的問題以及一些小技巧CSS
- 好的精益工廠佈局需要考慮哪些問題?
- 如何解決input遇到fixed,absolute佈局出現的問題
- 2020-12-17 html、css面試題3: 水平垂直居中,左右固定中間自適應 三欄佈局,靜態佈局、自適應佈局、流式佈局、響應式佈局、彈性佈局,IE中常見的相容性問題,清空陣列的方法HTMLCSS面試題陣列
- 關於C++物件的成員變數的佈局問題C++物件變數
- Flutter佈局之標題Flutter
- [面試專題]Flex 佈局面試Flex
- 三星手機佈局異常(margin有效)的問題
- 一個由程式記憶體佈局異常引起的問題記憶體
- CSS佈局 --- 居中佈局CSS
- css佈局-float佈局CSS
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- dispaly的Grid佈局與Flex佈局Flex
- Android開發-掌握ConstraintLayout(一)傳統佈局的問題AndroidAI
- Android開發 - 掌握ConstraintLayout(一)傳統佈局的問題AndroidAI
- ScrollView巢狀LinearLayout佈局不能撐滿全屏的問題View巢狀
- 居中佈局、三欄佈局
- qt 佈局---表單佈局QT
- java:佈局方法(流佈局)Java
- flex佈局(彈性佈局)Flex
- 佈局技巧:合併佈局
- 關於流逝佈局作業7.0顯示問題詳解
- 佈局總結-水平居中佈局的實現
- html的佈局HTML
- CSS 佈局之水平居中佈局CSS
- CSS佈局之三欄佈局CSS
- 浮動佈局 和 flex佈局Flex