Как измерить UIStackView в зависимости от его содержимого?
Я хотел бы иметь подобное поведение, чем<Table>
HTML-тег в том смысле, в котором размер фрейма соответствует его содержанию.
В моем самом контексте я использую UIStackView в качестве представления содержимого UITableViewCell. Поскольку элементы в ячейке имеют различную информацию, результирующая высота ячейки должна быть переменной.
Моя стратегия состоит в том, чтобы программно построить ячейку как UIStackView с вертикальной осью, как в следующем фрагменте кода:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let sv = UIStackView(frame: tableview.frame)
sv.axis = .Vertical
cell.addSubview(sv)
for i in information {
let l = UILabel()
l.text = i
sv.addSubViewAndArrange(l)
}
return cell
}
К сожалению, размер ячейки не подстраивается под содержимое, и в результате я должен сам установить высоту ячейки следующим образом:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return cellHeight // a constant
}
Как я мог это исправить?