У меня есть динамическая ячейка внутри TableView, которая автоматически изменяет размеры на основе информации в TextView.Это происходит внутри функции tableView: didSelectRowAt.Ниже приведена упрощенная версия:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
guard let cell = tableView.cellForRow(at: indexPath) as? cell else { return }
if cell.textViewOutlet.attributedText.length != 12 {
cell.textViewOutlet.attributedText = NSMutableAttributedString(
string: "Expand:\n\n\n " + String(indexPath.row)
)
} else {
cell.textViewOutlet.attributedText = NSMutableAttributedString(
string: "Cell: " + String(indexPath.row)
)
}
Это показано на следующем изображении: ![enter image description here](https://i.stack.imgur.com/LCAh4.png)
На изображении ячейка 1 развернута, ячейка 0 и 2сжаты.С помощью этой настройки я могу позволить пользователю поочередно расширять и сжимать ячейку (и сообщение), выбирая ячейку.
Моя проблема в том, что я хочу дать пользователю возможность редактировать текст.Конечно, когда пользователь нажимает для редактирования, вводится функция didSelectRowAt.
Как лучше всего отличить действие редактирования от действия расширения?Могу ли я сделать действие мультитач или долгое касание?
Одним из ограничений является то, что любой метод касания, который будет работать в textView, также должен использоваться в других ячейках приложения, которые не имеют этих возможностей расширения.Поэтому было бы чище, если бы я мог использовать другую технику для расширения.