gpt4 book ai didi

ios - UITableViewCell 在运行 iOS 11 的 iPhone X 上无法正确调整大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:21:39 29 4
gpt4 key购买 nike

我有一个 UITableViewCell,里面只包含一个标签。标签被限制在单元格的所有边距(顶部、底部、尾部和前导)。它是一个多行标签(lines = 0)并且有一些静态文本,在横向和纵向的 iPhone X 屏幕上都会占据多行。

这是一个 screenshot具有约束条件的 IB。

行数在代码中设置为 30。(足够的单元格始终占据屏幕)

我已经在一个新项目中实现了以上所有内容。大部分是在 IB 上完成的,UITableViewController 子类仅包含两个方法,numberOfRowsInSectioncellForRowAt indexPath。该项目是在 Xcode 9 上使用 Swift 4 创建的,设备在 iOS 11.2 上运行。

这是 UITableViewController 子类的代码

class ViewController: UITableViewController {

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
return cell
}
}

当 VC 首次启动时,所有单元格的大小都正确。在将设备旋转到横向时,单元格会按预期调整大小。现在,当我将设备旋转回纵向时,单元格占据的高度比它们应该占据的高度要大

这只发生在 iPhone X 上。这些单元格的布局与所有其他 iPhone 上的预期一致。

此外,我的任何旧项目(使用 Xcode 8 创建)都不会发生这种情况。

When the VC launches

After rotating to landscape and back

before after

我一直在尝试从我的旧项目中复制所有属性,但它的大小仍然不正确。

任何输入将不胜感激...谢谢!

编辑:

正如 Brandon 所指出的,只有当 UITableViewController 嵌入到 UINavigationController 中时才会发生这种情况。嵌入在 UINavigationController 中的 UIViewController 中的 UITableView 显示了正确的行为。 UINavigationController 之外的 UITableViewController 也按预期运行。

最佳答案

嗯..我能够 100% 重现这个..这太奇怪了,因为如果 UITableViewController 没有嵌入到 UINavigationController 中,那么一切正常.. 它嵌入的第二个,它表现出您帖子中显示的行为..

为了修复它,我做了:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)

self.tableView.reloadRows(at: self.tableView.indexPathsForVisibleRows!, with: .automatic)
}

它的工作原理,但它不是一直重新加载的理想选择。还没有找到另一个解决方案。到目前为止,它只发生在 UITableViewController 嵌入 UINavigationController.. 不会发生 UITableView inside UIViewController embedded in UINavigationController.. 它非常特定于 Table Controller。

这对我来说似乎是个错误。我检查了几乎所有的 Storyboard参数,但没有找到任何解决方案。

关于ios - UITableViewCell 在运行 iOS 11 的 iPhone X 上无法正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141255/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com