Swift 根据屏幕宽度将UITableViewCell设置为正方形

Swift 根据屏幕宽度将UITableViewCell设置为正方形,swift,uitableview,ios8,tableviewcell,Swift,Uitableview,Ios8,Tableviewcell,我有一个显示方形视频的表视图控制器,我希望每个表视图单元格也是方形的。是否可以根据屏幕宽度动态调整每个UITableViewCell的大小(例如,iPhone5为320x320,iPhone6为375x375) 在我的视图控制器的viewDidLoad函数中,我有: frameWidth = self.view.frame.size.width self.videosView.rowHeight = UITableViewAutomaticDimension self.v

我有一个显示方形视频的表视图控制器,我希望每个表视图单元格也是方形的。是否可以根据屏幕宽度动态调整每个UITableViewCell的大小(例如,iPhone5为320x320,iPhone6为375x375)

在我的视图控制器的viewDidLoad函数中,我有:

    frameWidth = self.view.frame.size.width
    self.videosView.rowHeight = UITableViewAutomaticDimension
    self.videosView.estimatedRowHeight = frameWidth
在UITableViewCell中显示视频的视图的约束为: 前导和尾随空间到超级视图,顶部空间到超级视图,高宽比为1:1


但我还是不能让牢房变成正方形。任何帮助都将不胜感激

这是很难做到的。UITableView中的单元格被重用,因此可以分配一次。(表演) 调整视图的大小在性能上是昂贵的,这就是只将一个数字作为单元高度的方式


您可以做的是使用if语句,并相应地返回到phone版本。

尝试将其与边界一起使用,而不是使用frame

frameWidth = view.bounds.size.width

您可以使用此tableview方法:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UIScreen.main.bounds.width
}

注意:Swift 3中的方法

在使用开关确定设备上的屏幕大小后,为什么不设置静态行高?