For details about attributes of iOS edgesForExtendedLayout, extendedLayoutIncludesOpaqueBars, and automaticallyAdjustsScrollViewInsets, opaque
EdgesForExtendedLayout:
After IOS7, ViewController began to use full-screen layout. The default behavior usually involves layout, which is inseparable from edgesForExtendedLayout. It is an attribute of the UIExtendedEdge type, the default value of the edge to be extended is UIRectEdgeAll, and the surrounding edges are extended. That is to say, if there is a navigationBar in the view and a tabBar in it, the view will extend to the surrounding area. This attribute is set to UIRectEdgeNone to prevent tableView from extending to the navigationBar.
UIRectEdgeAll -- default
UIRectEdgeNone
In this case, the navigation bar becomes grayed out, and the process is OK as follows. self. navigationController. navigationBar. translucent = NO;
AutomaticallyAdjustsScrollViewInsets:
When automaticallyAdjustsScrollViewInsets is NO, tableview starts from the top of the screen, that is, it is overwritten by the navigation bar and status bar.
When the value of automaticallyAdjustsScrollViewInsets is YES, it is also the default behavior and the performance is normal. What is the difference between it and edgesForExtendedLayout = UIRectEdgeNone? It may be hard to notice. When the value of automaticallyAdjustsScrollViewInsets is YES, you can go through the navigation bar and the status bar when the table view slides up and down, with a light red color below them.
ExtendedLayoutIncludesOpaqueBars
First, let's take a look at the official explanation. The default value is NO, but the default attribute of Bar is transparent... That is to say, it is useful only when it is not transparent.
However, the test results are very weak, and the basic difference is not big... But it still works to solve some bugs, such as the SearchBar
Runout problem, see: http://www.cnblogs.com/skyming/p/4059128.html, other UITableView, UIScrollView location
Most of the problems are related to these three attributes ..