Swift 根据屏幕宽度将UITableViewCell设置为正方形
我有一个显示方形视频的表视图控制器,我希望每个表视图单元格也是方形的。是否可以根据屏幕宽度动态调整每个UITableViewCell的大小(例如,iPhone5为320x320,iPhone6为375x375) 在我的视图控制器的viewDidLoad函数中,我有: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
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中的方法在使用开关确定设备上的屏幕大小后,为什么不设置静态行高?