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 的 contentInset 规则?
在 UITableView 中插入一些行后,它在 ios 7 中没有滚动