Я пытаюсь реализовать хороший эффект аккордеона в своем приложении. Моя цель - «открыть» ячейку, когда пользователь нажимает на нее, отображая дополнительный контент (например, текст) по мере увеличения высоты ячейки. Идеальным примером кода для этого является образец кода TableView Animations & Gestures, предоставленный Apple. Однако я испытываю странное поведение, которое разрушает весь эффект.
Похоже, что в зависимости от порядка, в котором табличное представление будет отображать свои ячейки (сверху -> снизу или снизу -> вверх), текстовые представления ячеек будут перекрывать друг друга или нет. Поскольку это немного сложно объяснить словами, вот это с изображениями.
Эти скриншоты были взяты из примера кода TVAnimationsGestures без каких-либо изменений. Это взято из первой версии примера кода без раскадровки:
Теперь версия с раскадровкой сначала вела себя хорошо, но через некоторое время, и без моего прикосновения к коду, она начала рисовать это:
И у меня точная проблема на моем кастоме с моими пользовательскими ячейками.
Мне потребовалось некоторое время, чтобы понять, в чем, по моему мнению, проблема. Если ячейки рисуются из верхней ячейки в нижнюю, такой проблемы нет. Однако, если ячейки нарисованы снизу вверх, они будут складываться в обратном порядке и, следовательно, перекрывать друг друга. Я не думаю, что можно контролировать это поведение. Что дало мне подсказку, так это то, что когда я прокручиваю вниз, заставляя верхнюю ячейку перерисовываться, они на самом деле хорошо перерисовываются, и экран выглядит так:
Смесь перекрывающихся ячеек и «хороших» ячеек.
Опять же, все это взято непосредственно из примера кода Apple, без каких-либо изменений. Кто-нибудь знает, что происходит?
Спасибо большое за вашу помощь.