Starting with IOS7, Apple began advocating full-screen layout, that is, by default the size of the controller's root view equals the size of the screen, even if the size of the Navigationbar+tabbar,view is not equal to the size of the screen, The result is that Navigationbar and Tabbar will cover the top and bottom areas of the view. As a result
The top area of the current root view is covered by the navigation bar.
To avoid being overwritten, you need to modify the Edgesforextendedlayout property.
Edgesforextendedlayout is an enumeration type. typedefenum: Nsuinteger {uirectedgenone=0, Uirectedgetop=1<<0, Uirectedgeleft=1<<1, Uirectedgebottom=1<<2, Uirectedgeright=1<<3, Uirectedgeall= Uirectedgetop | Uirectedgeleft | Uirectedgebottom |Uirectedgeright} Uirectedge;self.view.edgesforextendedlayout= Uirectedgetop;//indicates that the view extends up to the screen border. Self.view.edgesForExtendedLayout = Uirectedgeall;//represents the various borders that the view extends around to the screen. Self.view.edgesForExtendedLayout = Uirectedgenone;//indicates that the view does not extend around and is guaranteed not to be overwritten by Navigationbar and Tabbar.
Screen fit 1 (edgesforextendedlayout, extendedlayoutincludesopaquebars, translucent, automaticallyadjustsscrollviewinsets )