Xcode 9 Tableview调整大小错误

时间:2017-10-04 20:15:58

标签: ios swift xcode uitableview resize

我真的很沮丧,因为我刚刚将这个应用程序发布到App Store,现在我已经更新到Xcode 9,我的桌面视图现在遇到了问题。在iOS 10中,旧的tableview将单元格放置在tableview顶部下方的100个坐标附近,因此我能够在tableview上方添加标签和内容,单元格从它们下方开始,但随后可以在它们下面滚动。但是现在当我在ios11模拟器上运行应用程序时,它摆脱了tableview标题,但是当我在自己的手机上运行它时,却没有。我没有设置任何代码来确定tableview的标题,这是我当前的代码:

  myTableView.frame = CGRect(x: 0, y: 110, width: self.view.frame.width, height: self.view.frame.height - 140)

是一张帮助想象它的照片: https://imgur.com/a/I4iMo

我需要让tableview等同于iPhone 6s中的tableview而不是模拟器

1 个答案:

答案 0 :(得分:0)

尝试将确切的代码行放在viewDidLayoutSubviews

将它放在ViewController中。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    myTableView.frame = CGRect(x: 0, y: 110, width: self.view.frame.width, height: self.view.frame.height - 140)
}

像你一样处理不变大小的编码很差。您应该创建一个tableHeader,或者约束tableView上方的UIView - 其中UIView的高度基于其内容的大小。 在您的代码中,如果用户在辅助功能中打开更大的字体会发生什么?文本可能会超出您的100pt视图..

如果我的代码不起作用,请尝试使用一些新的safeArea变量,例如:

myTableView.frame = CGRect(x: 0, y: 110+self.view.safeAreaInsets.top, width: self.view.frame.width, height: self.view.frame.height - 140)

使用safeAreaInsets,直到您了解他们的行为为止。