为啥桌面视图与 iPhone X~iPhone XS Max 的大小不同?

Posted

技术标签:

【中文标题】为啥桌面视图与 iPhone X~iPhone XS Max 的大小不同?【英文标题】:Why is the table view different size from iPhone X~iPhone XS Max?为什么桌面视图与 iPhone X~iPhone XS Max 的大小不同? 【发布时间】:2019-01-23 02:42:18 【问题描述】:

在情节提要中,我将表格视图填充为全尺寸。 我将占位符视图高度设置为这样。

self.placeholderView.frame.size.height = self.mainTableView.frame.height

如果我启动 iPhone se ~ iPhone 8 Plus,效果很好。

但如果我推出 iPhone x ~ iPhone Xs Max,体积小。

即使在 iPhone X 的情况下,表格视图本身也是全尺寸的。 但是为什么当我得到一个表格视图时我得到不同的尺寸呢? 如何解决?

【问题讨论】:

您使用的是启动故事板还是启动图像?如果您使用的是启动图像,请确保您已包含适用于 iPhone X 及更高版本的正确尺寸(或者更好的是,切换到使用启动故事板) 【参考方案1】:

你应该改用这个,

self.table.backgroundView = yourView()

如果您想将数据设置回表中,只需设置

if table.backgroundView != nil
   table.backgroundView = nil

我不知道你是否喜欢这个想法,但每次我将背景表格视图更改为显示无数据或无互联网连接的用户时,我都会使用它。

【讨论】:

你确定你的tableview底部布局约束等于bottom superview吗?因为正如我在图片中看到的那样,占位符视图被 tableview 大小填充,并且底部视图具有该空间的大小也是因为 iPhone x 或更高版本的安全区域布局 或截图你的约束很容易帮助你:) 我确定。我检查以调试视图层次结构。表格视图本身就是超级视图的全尺寸。但是当我从代码中得到高度时,它的大小是不同的。 我有另一种方法来实现这一点,但你想按照我的方式做吗?因为我没有使用框架 我会试试这个。和反馈【参考方案2】:

请检查内容插图。

这是文档:

https://developer.apple.com/documentation/uikit/uiscrollview/2902259-adjustedcontentinset?language=objc

【讨论】:

以上是关于为啥桌面视图与 iPhone X~iPhone XS Max 的大小不同?的主要内容,如果未能解决你的问题,请参考以下文章

具有横向 iPhone X 支持的表视图标题

为啥 iPhone X 忽略 UICollectionView 的 UIEdgeInsets?

iPhone Xs Max:AVCaptureVideoPreviewLayer 添加到 View 的子层时占用的空间小于 iphone x 的安全区域 - 为啥?

更改 Iphone 中的垂直约束

如何将视图滑出iPhone X的可见区域?

子视图控制器视图不适合 iPhone X 上的父视图