【问题标题】:Making UITableViewCell a square based on screen width根据屏幕宽度使 UITableViewCell 成为正方形
【发布时间】:2017-02-03 11:54:56
【问题描述】:

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

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

    frameWidth = self.view.frame.size.width
    self.videosView.rowHeight = UITableViewAutomaticDimension
    self.videosView.estimatedRowHeight = frameWidth

在 UITableViewCell 内显示视频的视图的约束是: 前导和尾随空间到超级视图,顶部空间到超级视图,1:1 纵横比

我仍然无法让单元格成为正方形。任何帮助将不胜感激!

【问题讨论】:

  • 为什么不在通过开关确定设备上的屏幕尺寸后设置静态行高?

标签: swift uitableview ios8 tableviewcell


【解决方案1】:

你可以使用这个tableview方法:

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

注意:Swift 3 中的方法

【讨论】:

    【解决方案2】:

    这很难做到是有充分理由的。 UITableView 中的单元格被重用,因此可以分配一次。 (性能) 调整视图大小在性能方面代价高昂,这样您只需将一个数字作为单元格的高度。

    你可以做的是有if语句并相应地返回到手机版本。

    【讨论】:

      【解决方案3】:

      尝试使用边界而不是框架

      frameWidth = view.bounds.size.width
      

      【讨论】:

        猜你喜欢
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 2014-03-30
        • 1970-01-01
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多