Как сделать так, чтобы содержимое моего UITableViewCell не перекрывало другие ячейки при использовании анимации вставки?

Пример проекта: http://d.pr/f/Tkld

у меня есть UITableViewCell подкласс, который очень просто имеет один UIDatePicker рассматривать как его единственное подпредставление.

Как и Calendar.app, я хочу показать встроенный инструмент выбора даты, когда пользователь нажимает на ячейку. Мой код для этого хорошо работает (у меня просто Auto Layout вычисляет высоту, и она отлично растет), однако средство выбора даты перекрывает другое содержимое по мере роста ячейки, что выглядит очень странно.

На следующем скриншоте вы можете увидеть, как "Еще одна ячейка" анимируется на месте прямо в середине выбора даты.

Как я могу предотвратить это поведение? Ячейка, contentView ячейки и сам инструмент выбора даты имеют clipsToBounds на, так что я не знаю, как это вообще делает или что я должен делать.

Я приложил пример проекта выше, показывая его в наименьшем возможном сценарии. Проще всего это увидеть в симуляторе с включенной функцией "Медленные анимации" (Debug > Slow Animations), где вы увидите, как ячейка выбора даты отрисовывается за пределами своих границ на протяжении всей анимации.

1 ответ

Попробуйте реализовать tableView(_:heightForRowAtIndexPath:)и увеличение высоты ячейки для ячейки выбора даты. Я не видел этого в примере проекта. Это обеспечит правильную высоту ваших клеток при отображении.

Другие вопросы по тегам