2015-11-27 2 views
0

У меня есть следующий вид таблицы, несколько заголовков разделов с кнопкой, позволяющей скрывать/показывать раздел. Меня попросили скрыть раздел, прокрутив ячейки раздела до тех пор, пока раздел не будет закрыт (оставляя заголовки разделов видимыми для источника). Без анимации это легко, мне просто нужно установить высоту ячеек 0 и они исчезнут при перезагрузке. Я не уверен, как это сделать с анимацией типа тени. При нажатии Category0 я хочу, чтобы Sample0-Sample3 отображался в рулоне под заголовком, когда остальная часть таблицы перемещается вверх.Windowshade-подобная анимация, скрывающая ячейки в UITableView

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

Я пишу это в Swift, но любой язык в порядке.

enter image description here

ответ

0

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

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

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

+0

Да, самая большая проблема - это скрыть обычное поведение стола. Прямо сейчас у меня есть работа с простой анимацией UIView, которая не выглядит мне так плохо, но если это становится необходимым, я попытаюсь использовать базовую анимацию. Будет обновляться, как я знаю больше. – ahwulf

Смежные вопросы