tableView не устанавливает автоматическую высоту строки
В моем проекте у меня есть статический tableView с 3 разделами. Ячейка во втором разделе содержит метку, которая динамически заполнена и поэтому имеет динамическую высоту. Ячейка должна отрегулировать свою высоту в соответствии с высотой метки. Вот что я пытался без успеха:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.section == 0 {
return 44
} else if indexPath.section == 1 {
return UITableViewAutomaticDimension
} else if indexPath.section == 2 {
return 80
} else {
return 50
}
}
Высоты всех секций установлены правильно, кроме автоматических размеров. Любая помощь?
2 ответа
Решение
Установить эту строку в viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
тогда напиши это table view
метод
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
return UITableViewAutomaticDimension
}
также убедитесь, что вы использовали auto layout
должным образом. и вы установили number of lines for lable = 0
Вам также необходимо указать приблизительную высоту строки. Вы можете сделать это с помощью estimatedRowHeight
собственность вашего UITableView
или реализуя соответствующий метод делегата:
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return XXXXX // Provide your estimation here, or pass UITableViewAutomaticDimension (not the best for performances)
}