Вид на постукивание получил вид на описание об этом
Я хочу создать такое представление, чтобы показать длинный текст. есть несколько стручков для этого, но я хочу, чтобы это делалось программно.
заранее спасибо.
первое изображение -> вид перед нажатием.
Второе изображение -> просмотр после нажатия.
1 ответ
Если вам нужно быстрое рабочее решение, вы можете попробовать это.
создайте TableViewCell с двумя метками: метка заголовка с фиксированной высотой (скажем, 48) и метка описания (многострочная)
Поддерживайте высоту для каждой ячейки в массиве, по умолчанию сохраняйте высоту метки заголовка, просто чтобы показать метку заголовка (скажем, itemHeights = [48,48,48]
Когда вы выбираете ячейку, внутри метода делегата didSelectRowAt: переключайте высоту
if self.itemHeights[indexPath.row] == UITableViewAutomaticDimension {
self.itemHeights[indexPath.row] = 48
} else {
self.itemHeights[indexPath.row] = UITableViewAutomaticDimension
}
self.tableView.reloadRows(at: [indexPath], with: .automatic)
Внутри делегата метод "heightForRowAt:" возвращает обновленную высоту
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return self.itemHeights[indexPath.row]
}
Примечание: это просто обходной путь, который дает вам почти тот же результат, но с некоторой резкой анимацией.