关于automaticallyAdjustsScrollViewInsets

最近遇到一个问题是这样的,App一般自己都会有一个UINavigationController,顶部TableView如果有tableHeaderView如果设置起始位置是(0,0)是在导航栏的下面的,为了更好地UI希望从屏幕的(0,0)开始,就遇到了上面的这个问题,简单的看一下效果:

截图1

这个时候设置automaticallyAdjustsScrollViewInsets = NO效果如下:

截图2

官方文档的解释如下:

automaticallyAdjustsScrollViewInsets

Specifies whether or not the view controller should automatically adjust its scroll view insets.

@property(nonatomic, assign) BOOL automaticallyAdjustsScrollViewInsets

Discussion

Default value isYES, which allows the view controller to adjust its scroll view insets in response to the screen areas consumed by the status bar, navigation bar, and toolbar or tab bar. Set toNOif you want to manage scroll view inset adjustments yourself, such as when there is more than one scroll view in the view hierarchy.

Availability

Available in iOS 7.0 and later.

Declared In

UIViewController.h

简单点说就是automaticallyAdjustsScrollViewInsets根据按所在界面的status bar,navigationbar,与tabbar的高度,自动调整scrollview的 inset,设置为no,不让viewController调整,我们自己修改布局即可~

如果不需要viewController来帮我们调整scrollView的inset那么在iOS7之后我们需要控制器的viewDidLoad方法中加上:

if ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0) {

self.automaticallyAdjustsScrollViewInsets = NO;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ViewsBecause view objects are the main way your applicati...
    梁光飞阅读 3,875评论 0 0
  • iOS 7 之后苹果给 UIViewController 引入了 topLayoutGuide 和 bottomL...
    IOSCoderYummy阅读 4,149评论 0 0
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,493评论 0 23
  • 现实生活中有多少向别人倾述的心事,都是借助一包辣条娓娓道来。 以前有段吃辣条的巅峰时期,那是在高四的时候。那时没...
    徐宗离阅读 1,675评论 0 0
  • 当样式声明发生冲突时,各个样式声明优先级是如何判断的 1.样式声明后面有!important 的是老大 如果声...
    softbone阅读 1,189评论 3 0

友情链接更多精彩内容