Swift Изменение размера ячеек таблицы - PullRequest
0 голосов
/ 25 августа 2018

Как и в заголовке, я ищу способ изменить размер каждой ячейки в моем табличном представлении.У меня есть 2 вопроса:

1) Как я могу изменить размер всех ячеек на одну и ту же сумму в моем табличном представлении?

2) Можно ли автоматически настроить размер ячейки на основена длину текста в этой конкретной ячейке?

Я знаю, что ранее уже задавались подобные вопросы, но мне не удалось правильно реализовать их ответы, поскольку они уже устарели.Буду признателен за любую помощь, заранее спасибо!

1 Ответ

0 голосов
/ 25 августа 2018

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
    }
}
...