iOS edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets屬性詳解,opaque

來源:互聯網
上載者:User

iOS edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets屬性詳解,opaque

edgesForExtendedLayout:

 

在IOS7以後 ViewController 開始使用全屏布局的,而且是預設的行為通常涉及到布局,就離不開這個屬性 edgesForExtendedLayout,它是一個類型為UIExtendedEdge的屬性,指定邊緣要延伸的方向,它的預設值很自然地是UIRectEdgeAll,四周邊緣均延伸,就是說,如果即使視圖中上有navigationBar,下有tabBar,那麼視圖仍會延伸覆蓋到四周的地區。因為一般為了不讓tableView 不延伸到 navigationBar 下面, 屬性設定為 UIRectEdgeNone

UIRectEdgeAll -- default

UIRectEdgeNone 

這時會發現導覽列變灰了,處理如下就OK了,self.navigationController.navigationBar.translucent = NO;

automaticallyAdjustsScrollViewInsets :

當 automaticallyAdjustsScrollViewInsets 為 NO 時,tableview 是從螢幕的最上邊開始,也就是被 導覽列 & 狀態列覆蓋


當 automaticallyAdjustsScrollViewInsets 為 YES 時,也是預設行為,表現就比較正常了,和edgesForExtendedLayout = UIRectEdgeNone 有啥區別? 不注意可能很難覺察, automaticallyAdjustsScrollViewInsets 為YES 時,tableView 上下滑動時,是可以穿過導覽列&狀態列的,在他們下面有淡淡的淺淺紅色

extendedLayoutIncludesOpaqueBars 

首先看下官方解釋,預設 NO, 但是Bar 的預設屬性是 透明的。。。也就是說只有在不透明下才有用

但是,測試結果很軟肋,基本區別不大。。。但是對於解決一些Bug 是還是起作用的,比如說SearchBar的

跳動問題,詳情見:http://www.cnblogs.com/skyming/p/4059128.html, 其他UITableView,UIScrollView 位置的

問題多數和這3屬性相關。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.