1
self.automaticallyAdjustsScrollViewInsets = YES;

我将其设置为是。我认为默认情况下是的。

然后,当我检查插图时,这就是我得到的: NSStringFromUIEdgeInsets(self.tableView.contentInset): {0, 0, 0, 0}

我认为它应该以包含导航栏和状态栏的方式设置。所以发生了什么事?

4

2 回答 2

5

据我所知

自动调整ScrollViewInsets

允许视图控制器调整其滚动视图插入以响应状态栏、导航栏和工具栏或标签栏所占用的屏幕区域

  • 适用于视图控制器视图的直接子视图(有人说它必须是第一个子视图)的视图
  • 此视图必须是 ScrollView 子类
  • 视图控制器嵌入在导航控制器或 TabBar 控制器中
  • edgesForExtendedLayoutUIEdgeRectTop(如果您希望 ScrollView 子类视图位于顶栏后面),UIEdgeRectBottom (如果您希望 ScrollView 子类视图位于底栏后面)

下面的代码复制了什么automaticallyAdjustsScrollViewInsets时候edgesForExtendedLayout = UIEdgeRectTop

self.scrollView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0);
self.scrollView.contentOffset = CGPointMake(0, -self.topLayoutGuide.length);
于 2013-12-06T15:24:10.323 回答
0

我认为这取决于您的 UIVIewController 的edgesForExtendedLayout值。如果您希望内容出现在顶部之后,请设置edgesForExtendedLayout' = UIRectEdgeNone (or UIRectEdgeRight | UIRectEdgeLeft | UIRectEdgeBottom, you just don't want to includeUIRectEdgeTop`)

于 2013-10-08T11:17:27.547 回答