1) Чтобы изменить размер всех ячеек с одинаковым типом, сначала необходимо создать CellType
, вот объяснение, как это сделать.https://stackoverflow.com/a/51979506/8417137 или вы можете проверить indexPath.row, но это не круто:)
Чем здесь:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
switch cellType {
case firstType:
return firstCellTypeHeight
case secondType:
return secondCellTypeHeight
default:
return defaultCellHeight
}
}
2) Да, это возможно.Вы создаете свой CustomCell
.В вашем CustomCell
вы должны установить текстовые поля или метки внутри ContentView
.Ваши взгляды с текстом растянут вашу клетку.
Важная вещь.В приведенном выше методе вы должны вернуть специальную высоту вот так.
return UITableViewAutomaticDimension
Например, ваш код будет выглядеть так.
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
switch cellType {
case firstType:
return firstCellTypeHeight
case secondType:
return secondCellTypeHeight
// Your stretching cell
case textCellType:
return UITableViewAutomaticDimension
}
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
switch cellType {
case firstType:
return firstCellTypeHeight
case secondType:
return secondCellTypeHeight
// Your stretching cell
case textCellType:
return UITableViewAutomaticDimension
}
}