iOS 7 中 UITableView 的 contentInset 规则?

Posted

技术标签:

【中文标题】iOS 7 中 UITableView 的 contentInset 规则?【英文标题】:Rules for the contentInset of a UITableView in iOS 7? 【发布时间】:2014-06-25 18:15:43 【问题描述】:

我很好奇系统如何/何时确定是否将 UITableView contentInsets 默认设置为 64。

我在常规 UIViewController 中放置了一个 UITableView,它本身位于带有半透明导航栏的 UINavigationController 中。 tableview 的自动布局告诉它填充 UIViewController 的视图。

现在,默认情况下,tableview 的顶部内容插入为 64.f。我可以通过手动设置内容插入或在 UIViewController 上使用 edgesForExtendedLayout 来防止这种行为。现在,我先不管它。

但是,如果我在 self.view 和 tableview 之间插入一个 subview,tableview 的默认顶部 inset 变为 0.0f,我必须手动将其调整回 64.f。

我的问题是:视图控制器如何确定是否更改插图?它实际上只是检查self.view的顶部子视图是否是tableview/scrollview?

【问题讨论】:

【参考方案1】:

我今天下午刚遇到这个问题,我在普通的 ViewController 中添加了一个 UIButton 和一个 UITableView。我将 UITableView 的原点设置为 (0, 64),它在导航栏下方看起来很正常。但是在我删除 UIButton 并单独留下 UITableView 之后,它似乎是导航栏下方的另一个 64 插图。真的很奇怪!

而且搜索出来的第一个问题是你的,但是没有答案,真的很烦……但是那里有很好的答案!

简而言之,如果主视图或主视图的第一个子视图是 UIScrollView 的类或子类,例如UITableView,它可以工作。否则,视图控制器不知道哪个 UIScrollView 工作。

这里是参考: ios 7 Table view fail to auto adjust content inset

【讨论】:

以上是关于iOS 7 中 UITableView 的 contentInset 规则?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7中UITableView的半透明效果[关闭]

iOS 7 中 UITableView 的 contentInset 规则?

切换到 iOS 7 后 UITableView 不滚动

在 UITableView 中插入一些行后,它在 ios 7 中没有滚动

iOS 7:在 UITableView / delaysContentTouches 中拖动似乎不起作用

iOS 7 UITableView:是错误还是我?