2017-08-06 26 views
0

如果将预览设备设置为具有屏幕宽度的iPhone 7,我在我的iPhone 6上运行我的应用程序,其中屏幕宽度为414点375分,第一次加载表格时,我在viewdidload中打印出了表格的大小,宽度为414,但表格单元格的宽度都是375,在我上下滚动后,宽度变为414.在多个UITableViewController中进行测试,结果都一样。表格视图单元格大小取决于故事板中的预览设备大小

我的问题是:

为什么取决于预览设备尺寸表视图单元格的大小?

如何使单元格在第一次加载时具有正确的大小?

tableView.layoutIfNeeded(),tableView.layoutSubViews()不起作用。

回答

1

的tableview中有正确的尺寸414(我的设备大小),但不知何故,单元尺寸为模拟指标的大小,研究的几个月后,这是我想出了答案:

在我的单元类,重写awakeFromNib(),将frame.size.width设置为UIScreen.main.bounds.width,然后调用layoutIfNeed()

0

每次从Storyboard加载视图时,它最初的大小都是故事板中指定的大小,然后当它被添加到视图层次结构中时,其框架将被调整(通过Autolayout或您的自定义代码) 。所以在你的情况下,当一个单元格首先从故事板加载时,它将有414个点宽(假设你的tableView与视图控制器具有相同的宽度),但是当它被放入实际的视图层次结构中时,它将相应地调整大小(375pt,这等于你的tableview的宽度)。

相关问题