无法在swift中设置CustomCells的高度

时间:2017-01-05 19:45:21

标签: ios objective-c swift autolayout ios-autolayout

我有很多customCell,每个单元格可能有一个按钮,其作用类似于文本框或textArea。当View加载时,它们的高度非常低。

override func viewDidLoad() {

    super.viewDidLoad();

    self.view.backgroundColor = UIColor.groupTableViewBackground
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.none
   self.tableView.estimatedRowHeight = 100
   tableView.rowHeight = UITableViewAutomaticDimension
   self.tableView.setNeedsLayout()
   self.tableView.layoutIfNeeded()

}

我在单元格enter image description here

上定义了以下约束

自动布局是否可以与原型单元一起使用? 如果不是如何实现这个? 我试过HeightforrowAtIndexPath方法布局看起来不错,只有在滚动之后。视图的初始加载不会有良好的布局。

下面是我的代码。

  func tableView(_ tableView: UITableView, heightForRowAt indexPath:   IndexPath) -> CGFloat {
   if (eleData.elementType=="apple")
    {
        return 90;
   }  
 else if (eleData.elementType=="banana")
    {
        return 50;
   }     
else  
{
  return 30;
}

}

任何建议。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

快速谷歌搜索为您提供答案......

UITableView dynamic cell heights only correct after some scrolling

如果需要,您需要在cellForRowAtIndexPath方法中返回单元格之前添加布局:

cell.layoutIfNeeded()