TVanimationsGestures Пример кода Ошибка/странное поведение Перекрывающиеся ячейки

Я пытаюсь реализовать хороший эффект аккордеона в своем приложении. Моя цель - «открыть» ячейку, когда пользователь нажимает на нее, отображая дополнительный контент (например, текст) по мере увеличения высоты ячейки. Идеальным примером кода для этого является образец кода TableView Animations & Gestures, предоставленный Apple. Однако я испытываю странное поведение, которое разрушает весь эффект.

Похоже, что в зависимости от порядка, в котором табличное представление будет отображать свои ячейки (сверху -> снизу или снизу -> вверх), текстовые представления ячеек будут перекрывать друг друга или нет. Поскольку это немного сложно объяснить словами, вот это с изображениями.

Эти скриншоты были взяты из примера кода TVAnimationsGestures без каких-либо изменений. Это взято из первой версии примера кода без раскадровки:

Нормальное поведение

Теперь версия с раскадровкой сначала вела себя хорошо, но через некоторое время, и без моего прикосновения к коду, она начала рисовать это:

Перекрывающиеся ячейки

И у меня точная проблема на моем кастоме с моими пользовательскими ячейками.

Мне потребовалось некоторое время, чтобы понять, в чем, по моему мнению, проблема. Если ячейки рисуются из верхней ячейки в нижнюю, такой проблемы нет. Однако, если ячейки нарисованы снизу вверх, они будут складываться в обратном порядке и, следовательно, перекрывать друг друга. Я не думаю, что можно контролировать это поведение. Что дало мне подсказку, так это то, что когда я прокручиваю вниз, заставляя верхнюю ячейку перерисовываться, они на самом деле хорошо перерисовываются, и экран выглядит так:

Смесь

Смесь перекрывающихся ячеек и «хороших» ячеек.

Опять же, все это взято непосредственно из примера кода Apple, без каких-либо изменений. Кто-нибудь знает, что происходит?

Спасибо большое за вашу помощь.


person couicoui    schedule 08.01.2012    source источник


Ответы (1)


Вы можете увеличить высоту ячейки, зажав ячейку.

person Edoardo    schedule 19.03.2012
comment
Похоже, что автор вопроса ищет программное решение. Или я неправильно понимаю вопрос? - person Johan Karlsson; 26.10.2012