Nano Hash - криптовалюты, майнинг, программирование

Динамическая высота ячейки UITableView - высота перезагрузки для одной строки

У меня есть UITableView со строками динамической высоты, многие из которых содержат UITextViews. Когда пользователь начинает вводить текст в одном из текстовых представлений, у меня увеличиваются ячейки, чтобы соответствовать размеру содержимого текстового представления, используя метод begin/endUpdates. Использование этого метода позволяет изменять размер ячеек без потери фокуса клавиатуры на текстовом представлении, что является важным аспектом моего приложения.

Однако, когда я вызываю begin/endUpdates, он перезагружает высоту для каждой имеющейся у меня ячейки, и мне было интересно, есть ли способ пересчитать высоту ячейки только в определенном indexPath, пока пользователь печатает. Я хочу сделать это, потому что мои высоты для других ячеек дорого вычисляются, поскольку они имеют динамический контент. Я знаю, что мог бы написать некоторый код кэширования высоты, но мне было интересно, есть ли какой-либо метод для пересчета только высоты конкретной ячейки или набора ячеек в UITableView без потери фокуса клавиатуры/перезагрузки содержимого данных этой строки?

Я использую ios8, но буду использовать решения ios7/8.


  • Вы получили именно то, что хотели реализовать? 28.10.2015
  • Лучше было бы показать специальный экран редактирования. Так же, как в Facebook для публикации. 24.12.2015

Ответы:


1

Создание массива NSIndexPath. Если у вас есть только один indexPath, добавьте только его в массив и используйте этот метод:

 [self.tableView reloadRowsAtIndexPaths:[NSArray *array] withRowAnimation:UITableViewRowAnimationAutomatic];

но я думаю, что этот метод также скроет клавиатуру, никогда не пробовал.

17.07.2014
  • Да, этот метод перезагрузит содержимое ячейки и удалит фокус клавиатуры, а не просто отрегулирует высоту ячейки. 17.07.2014

  • 2

    Не похоже, что это возможно сделать только для одной строки. В итоге я создал систему кэширования высоты строк, чтобы, по крайней мере, быстрее возвращать высоты для всех ячеек.

    21.07.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..