Swift: выпадающее меню исчезает при прокрутке вниз - PullRequest
1 голос
/ 12 апреля 2020

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

cell.clipsToBounds=false
cell.contentView.clipsToBounds=false

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

https://github.com/Rawchris/Drop-down-overflow2

В проекте я поместил раскрывающиеся кнопки в каждой ячейке, но это нормально, если это только первый, который работает. Я надеюсь, что вы можете помочь. Пожалуйста, скажите мне, если вам нужна дополнительная информация.

1 Ответ

1 голос
/ 17 апреля 2020

Проблема не в том, что "переполнение перестает работать" ... проблема в том, что ячейки табличного представления отрисовываются не по порядку.

Принимая ответ на ваш другой вопрос: { ссылка }

Я укоротил высоты ячеек, чтобы их было легче видеть.

На этом изображении:

enter image description here

Я прокручивал несколько раз вверх и вниз, прежде чем нажать кнопку «Строка 8». Как видите, ваше серое «выпадающее» меню скрыто за строками 9 и 10.

Используя Debug View Hierarchy, вы можете точно видеть, что происходит:

enter image description here

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

В общем случае не следует рисовать за пределами других представлений. Многие проблемы могут возникнуть. Кроме того - конечно, это может считаться только личным мнением - весь «выпадающий список выбора» выглядит очень неуместным на телефоне или планшете. Это делает для довольно неуклюжий / неуклюжий пользовательский опыт. На твоем месте я бы переосмыслил свой подход.

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