iPhone X 上的 UITableViewCell contentView inset

Posted

技术标签:

【中文标题】iPhone X 上的 UITableViewCell contentView inset【英文标题】:UITableViewCell contentView inset on iPhone X 【发布时间】:2017-11-13 17:52:14 【问题描述】:

在 iPhone X 上创建的任何 UITableViewCell 都有一个 44 点的内容视图插入。这意味着 UITableViewCell 的 contentView 的宽度默认比单元格宽度小 44pts。我不需要有这种行为。如何获得与单元格宽度相同的 contentView 宽度(或者像其他 iPhone 型号一样)?

更新:我通过设置 tableView.insetsContentViewsToSafeArea = NO 解决了这个问题。现在为 UINavigationBar 项目等其他元素处理相同的问题。导航栏的 UIBarButtonItem 找不到等效项。任何见解都值得赞赏。

【问题讨论】:

【参考方案1】:

也许你可以在你的视图控制器上使用额外的SafeAreaInsets,它可以减少实际可用空间,但如果使用负Insets,它应该做相反的事情。

https://developer.apple.com/documentation/uikit/uiviewcontroller/2902284-additionalsafeareainsets

【讨论】:

self.navigationController.additionalSafeAreaInsets = UIEdgeInsetsMake(0, -44, 0, -44) 有效,而不是 viewController。【参考方案2】:

在您的表格视图中将 insetsContentViewsToSafeArea 设置为 false。

tableview.insetsContentViewsToSafeArea = false

【讨论】:

以上是关于iPhone X 上的 UITableViewCell contentView inset的主要内容,如果未能解决你的问题,请参考以下文章

iPhone X 上的 UITabBarController

iPhone x 上的 UITableViewController 顶栏

iPhone X 上的 UITableViewCell contentView inset

iPhone X上的额外底部空间/填充?

iPhone X 上的导航栏不覆盖状态栏

如何避免 iPhone X 上的视图剪辑