使用swift动态设置TableViewCell的大小

时间:2016-12-01 13:06:01

标签: ios swift uitableview

我使用此代码为每个单元格静态设置tableView单元格的高度。

 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

if let cell = modelCollection[collection.identifier] {
            if let _ = cell as? TiteCell{
              return 200
             }else if let _ = cell as? ParagraphCell{
              return 500
             } else if let _ = cell as? WebViewCell{
              return 1000
             }
}

我不想再为WebViewCell设置静态值1000,而是使用WebView请求网站的高度。问题是我在DetailViewController类上设置高度后,在另一个名为WebViewCell的类中请求网站。这可能吗?

2 个答案:

答案 0 :(得分:1)

<{1>}使用

中的

viewDidLoad

并删除tblView.rowHeight = UITableViewAutomaticDimension tblView.estimatedRowHeight = 200数据源方法。另外,请勿忘记在heightForRowAtIndexPath中使用AutoLayout

有关详情,请查看http://www.appcoda.com/self-sizing-cells/

答案 1 :(得分:0)

你可以这样做

也不要忘记使用NSLayoutConstraints,因为没有它就无法工作

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

     if let cell = modelCollection[collection.identifier] {
            if let _ = cell as? TiteCell{
              return 200
             }else if let _ = cell as? ParagraphCell{
              return 500
             } else if let _ = cell as? WebViewCell{
              return UITableViewAutomaticDimension
             }
     }


 func tableView(tableView: UITableView, EstimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
     return 1000
}

注意:抱歉,如果我的答案格式化sucka。我现在正在使用手机