UITableView 的子视图与 tableView 的高度不同
Posted
技术标签:
【中文标题】UITableView 的子视图与 tableView 的高度不同【英文标题】:Subview of UITableView does not have same height as tableView 【发布时间】:2016-04-13 23:28:40 【问题描述】:我在情节提要中有一个带有约束的 tableView,它占据了整个超级视图。在关联 VC 的 viewDidLoad(..) 中,我加载了一个 .xib (UIView),然后将其添加为 tableView 的子视图。
let emptyHomescreenView = EmptyHomescreenView() //The nib is loaded earlier.
self.tableView.addSubview(emptyHomescreenView)
无论如何,我发现 emptyHomeScreenView 的高度比它应该的要长。它被正确放置在 tableView 中,但问题只是高度。我尝试手动将高度设置为与 tableView 相同,但没有变化。我还尝试将 tableView 的 contentInset.bottom 设置为新值,但这也没有改变(奇怪的是 top 确实有效)。
self.tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: -self.navigationController!.toolbar.frame.size.height, right: 0)
//Above line doesn't work, setting a value for top does modify the emptyHomescreenView however.
然后我尝试了
self.edgesForExtendedLayout = UIRectEdge.Bottom
这降低了emptyHomescreenView的高度,但它仍然与navController的底部工具栏不太对齐。
有人知道为什么会这样吗?我正在为 xib 使用自动布局。
编辑Image Here
【问题讨论】:
【参考方案1】:您的 contentInset 对您的内容造成了双重影响。将 contentInset 的所有值设置为 0。您的 TableView 应该已经与工具栏齐平,并且 tableView 的内容视图是相对于 tableview 的边界测量的,而不是全局视图空间。
【讨论】:
我将 contentInset 值设置为 0,不幸的是 contentView 不是我可以从 tableView 访问的属性。以上是关于UITableView 的子视图与 tableView 的高度不同的主要内容,如果未能解决你的问题,请参考以下文章