我正在开发一个swift项目,根据标签内容需要单元格大小是动态的,所以我搜索动态单元格高度,我找到了一些解决方案,但所有这些都包括使用故事板来分配约束。没有故事板就可以做到这一点。是否有可能以编程方式进行?我的意思是在没有故事板的情况下应用自我调整大小
我的代码是:
class a: UITableViewDelegate, UITableViewDataSource {
tableView = UITableView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), style: UITableViewStyle.Plain)
tableView.delegate = self
tableView.dataSource = self
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension
self.view.addSubview(tableView)
}
希望问题很明确。
提前致谢。
编辑:以下答案均无效
答案 0 :(得分:1)
尝试这种方法。
override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
return // get cell text label high and return +10 or +20 height. what is label height..
}
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以尝试此方法。
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
self.dashBoardTableView.rowHeight = UITableViewAutomaticDimension
if (CellIdentifier == "dashBoardTableCellID")
{
dashBoardTableView.rowHeight = 96
}
else
{
dashBoardTableView.rowHeight = 60
}
return self.dashBoardTableView.rowHeight
}
答案 3 :(得分:0)
是的,您可以在代码中创建约束。 我建议你看看NSLayoutConstraint类:
答案 4 :(得分:0)
iOS 8支持自定义的tableview单元格。要启用它,首先要使用正确的约束创建单元格。最终使用代码
tableView.estimatedRowHeight = 50
tableView.cellHeight = UITableViewCellAutomaticDimension
estimatedRowHeight
只是提示tableview。当tableview重用单元格时,它会查看其内容并根据它调整大小。