表视图单元格高度基于动态高度表高度问题

时间:2017-02-28 10:19:38

标签: ios swift uitableview

情景 -

  1. 使用宽高比动态设置TableView高度相对于superview的高度。

  2. TableViewCell的高度是根据表格视图的高度计算的:

     func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
             return tableView.frame.height/2
     }
    
  3. 问题 -

    最初在委托方法中未正确计算表视图高度。但在滚动单元格后正确计算。

    已尝试解决方案:

    1. 重新加载tableView中的viewDidLayoutSubViews()
    2. cell.layoutSubViews()中调用cellForitemAtIndexPath
    3. 为此tableView高度实现正确计算的任何解决方案?

2 个答案:

答案 0 :(得分:2)

请在返回tableView.layoutIfNeeded()

之前试用return tableView.frame.size.height/2

答案 1 :(得分:0)

朋友在vc.h文件中声明CGRect

CGRect tblFrame;

然后在vc.m viewDidLoad:方法中将tableView框架设置为该tbleFrame,

tblFrame = self.tableView.frame;

然后,

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
             return tblFrame.size.height/2
    }

Dynamic cell height based on tableView