Como dimensionar um UIStackView dependendo do seu conteúdo?
Eu gostaria de ter um comportamento semelhante ao do<Table>
Tag HTML, no sentido em que o quadro é dimensionado de acordo com seu conteúdo.
No meu próprio contexto, eu uso um UIStackView como a exibição de conteúdo de um UITableViewCell. Como os itens na célula são várias informações, a altura resultante da célula deve ser variável.
Minha estratégia é criar programaticamente uma célula como um UIStackView com um eixo .Vertical, como no snippet de código da seguinte maneira:
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
}
Infelizmente, o tamanho da célula não se ajusta ao conteúdo e, como resultado, tenho que definir a altura da célula, da seguinte maneira:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return cellHeight // a constant
}
Como eu poderia consertar isso?