Как я могу сохранить макет внутреннего элемента пользовательского UITableViewCell в режиме редактирования? - PullRequest
0 голосов
/ 24 мая 2019

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

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

Есть ли рекомендуемый способ просто сдвигать содержимое при входе в режим редактирования, а не перекладывать на меньшую ширину?

1 Ответ

1 голос
/ 24 мая 2019

Вы правы, что размер ячейки contentView изменяется при появлении кнопки удаления.

Одна идея состоит в том, чтобы добавить дополнительный вид к ячейке contentView.Это дополнительное представление должно содержать все ваши хорошо выложенные подпредставления.

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

Это должно позволить всему дополнительному представлению (и всем вашим симпатичным маленьким подпредставлениям) сместиться в целом вправо при входе в режим редактирования.и появится значок удаления.

Но это может вызвать новую проблему.Как только пользователь коснется значка удаления, в ячейке справа появится кнопка «Удалить».Таким образом, вам может понадобиться повторить ограничения, чтобы установить правую привязку, а не левую.Это изменение в ограничениях, вероятно, должно быть сделано в методе willTransition пользовательской ячейки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...