Настройка поведения заголовка IPhone TableView

Кто-нибудь знает способ настроить поведение стыковки заголовка TableView или структуру, которая делает это?

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

Эту маленькую механику можно использовать весьма креативно: например, скажем, у вас полно табличного представления. Контент имеет два "режима", поэтому вам нужен сегментированный элемент управления в верхней части табличного представления, который будет переключать поведение контента в ячейках. Затем вы также хотите что-то декоративное в верхней части экрана - например, логотип.

Один интересный подход к этому - сделать логотип заголовком, а сегментированный элемент управления - в другом заголовке. LogoHeader был бы заголовком для раздела 0, а segmentedHeader был бы заголовком для раздела 1. В разделе 0 не было бы ячеек (или, если UITableView кричит при этом, вы могли бы добавить строку 0px или 1px), тогда как Раздел 1 содержал бы весь ваш контент. Итак, немного так:


Логотип заголовок


SegControlHeader


содержание


содержание


содержание


содержание


содержание


(Функция форматирования SO не позволяет моему ASCII-изображению выглядеть так, как я задумал, но это нормально.)

Итак, что это делает? Ну, весь экран реагирует на прокрутку, так как все это одно представление таблицы. Но в то время как logoHeader поднимется за пределы экрана, segControlHeader будет закреплен вверху, а остальная часть контента пройдет позади него. Это просто интересный эффект стыковки, и с хорошим дизайном и оформлением вы можете создавать аккуратные эффекты.

Теперь проблема возникает, когда ваши дизайнеры хотят поднять его на новый уровень. "Это должно пристыковаться здесь, и это должно пристыковаться здесь, и эта вещь начнет частично скрываться за пределами представления таблицы, когда вы открываете представление (например, панель поиска)" и т. Д. Дополнительные заголовки в содержимом должны быть там и закрепляться, и так далее.

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

Возможно, самым простым способом было бы использовать представление прокрутки, прочитать contentOffset и затем изменить положение объектов в представлении содержимого соответственно, от MIN или MAX до определенных диапазонов в представлении прокрутки?

0 ответов

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