Возможно ли иметь UITableView с одной строкой, всегда находящейся в режиме редактирования, показывающей ее элемент управления вставкой или удалением? Если так, то как? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть UITableView с некоторыми данными, и я надеюсь поместить в верхнюю строку или раздел ячейку (назовите ее «Добавить запись» или что-то в этом роде), которая всегда находится в состоянии редактирования, так чтовсегда отображает систему управления вставкой.Это возможно?Если да, то как?

Я искал все вокруг. В документации Apple перечислены методы setEditing(_:animated:) для UITableViewCell.Я использовал и это, и установил isEditing в true в ячейке под нагрузкой, и, похоже, она находится в состоянии isEditing, потому что таблица не позволит выбрать ее, пока я не включу «одиночный выбор в состоянии редактирования».,Но элементы управления вставкой или удалением не отображаются, и делегат tableView(_:editingStyleForRowAt:) никогда не вызывается.

Ячейка выглядит хорошо, если я вызываю setEditing(_:animated:) в самом табличном представлении, но это устанавливает каждые чел для редактирования, удаления и все!Это не то, что я хочу.

Полагаю, я могу просто использовать обычную ячейку и использовать изображение элемента управления вставкой, но я бы предпочел использовать системный элемент Apple, если это возможно (поскольку они могут измениться).Кроме того: я всегда могу загрузить таблицу редактирования при загрузке и кэшировать снимок элемента управления редактированием, но это требует больше работы, чем стоит!

Возможно ли то, что я собираюсь сделать?Ты понимаешь, для чего я иду?Любой совет, который вы могли бы дать, был бы очень полезен.

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете попробовать следующий подход:

  1. Продолжайте использовать setEditing на самом UITableView.

  2. Для отображения редактированияуправляет только для конкретной ячейки, реализуйте метод canEditRowAtIndexPath делегата UITableViewDataSource и возвращайте true только для ячейки, для которой вы хотите разрешить редактирование.

  3. На этом этапе вашконкретная ячейка будет отображать элементы управления редактированием, но ячейки недоступны для выбора;вам нужно установить allowsSelectionDuringEditing в вашем табличном представлении, чтобы позволить ячейкам быть выбранными.Далее, вы, вероятно, захотите предотвратить подсвечивание ячейки редактирования, внедрив метод делегата shouldHighlightRowAtIndexPath и вернув true для всех ячеек, кроме ячейки, которую вы хотите сохранить в режиме редактирования.

Другие возможные решения:

  • Создайте свой собственный UITableViewCell и самостоятельно внедрите пользовательский интерфейс редактирования (который всегда будет виден), затем используйте эту ячейку там, где вам это нужно.
  • Используйте другую UITableView с одной ячейкой, которая всегда будет в режиме редактирования, и поместите ее над другой таблицей, чтобы она выглядела как та же самая таблица.Это возможное решение , но, скорее всего, перегиб .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...