Необходимо анимировать заголовок раздела, когда фокусируется ячейка коллекции под заголовком. Точно так же, как если вы зайдете в приложение «фильмы itunes» на Apple TV и перейдете на вкладку «Главные фильмы», если вы посмотрите на плейлисты ниже, когда вы прокручиваете элементы, заголовок анимируется вверх и вниз, чтобы не перекрываться с выделенной ячейкой. любая помощь приветствуется ссылка на скриншот tvos
как анимировать заголовок раздела collectionview в приложении tvOS?
Ответы (1)
Я не могу точно предоставить код; но это в основном то, что вы собираетесь делать.
1 - Создать посредника class headingRouter
; целью которого будет служить посредником между заголовком scrollView (коллекцияView или tableView) и выбором ячейки. Экземпляр заголовочного маршрутизатора будет жить в ваших методах основного уровня collectionView. Вы можете использовать шаблон делегата, чтобы абстрагировать логику изображения для router
, а затем для collectionView; соответствовать делегату, чтобы обновить рассматриваемое представление.
2 - Верхние и нижние колонтитулы - это то, что называется supplementary view
; поэтому им можно назначить любой пользовательский подкласс uiView
. В этом headerView; у вас должен быть метод, который принимает идентификатор, возможно, id
, и изменяет отображаемое изображение. Вы можете анимировать это изменение с помощью затухания, если хотите, чтобы оно выглядело как iTunes.
3 - На вашем сфокусированном участке ячейки; у ячеек есть идентификатор, который назначается во время метода cellForRowAt
в ваших методах делегата/источника данных. Когда сфокусирован конкретный вид; используя один из различных методов collection/tableView; вы хотите взять этот идентификатор; передайте его вашему headingRouter
, который, в свою очередь, уведомит ваш заголовок, чтобы изменить его изображение на соответствующее изображение (возможно, хранящееся в кеше) на изображение, на которое вы фокусируетесь.
Это больше логика реализации; но вы не опубликовали никакого кода, так что конкретики не так много. Вы могли бы обойтись без класса Router
, но это более чистое решение.
Ваше здоровье