У меня есть UICollectionView с пользовательским макетом, и я пытаюсь отобразить вид украшения.
Проблема проиллюстрирована некоторым кодом:
attributeDecorationTime.frame = CGRectMake(0.0f,
0.0f,
[self getXOffset],
(epgCollectionView.bounds.size.height+epgCollectionView.contentOffset.y));
Этот код должен отображать декоративный вид, который разделяет экран на две части, если значение [self getXOffest] находится в центре экрана. Левая часть — это представление украшения, а справа мы можем видеть половину представления коллекции, которое не скрыто представлением украшения.
На симуляторе iphone при запуске он работает, как и ожидалось, но когда я начинаю немного прокручивать вниз, я вижу нижнюю часть представления украшения. Я не хочу видеть нижнюю часть декоративного представления, декоративное представление всегда должно покрывать высоту экрана.
Похоже, если я создам epgCollectionView.contentOffset.y*2, это сработает, может быть, это связано с экраном сетчатки? Но почему он при этом закрывает экран, если это проблема сетчатки @2x пикселей???
Теперь, если я использую этот код:
attributeDecorationTime.frame = CGRectMake(0.0f,
epgCollectionView.contentOffset.y,
[self getNowXOffset],
(epgCollectionView.bounds.size.height+epgCollectionView.contentOffset.y));
Вид украшения прокручивается вниз, когда я прокручиваю представление коллекции вниз.
Когда я правильно понимаю, что это значит, в представлении оформления не используются те же x y, что и в обычных ячейках или ячейках заголовков.
Теперь, когда я запускаю первый код на симуляторе ipad, представление украшения, которое должно быть на y = 0, начинается с y = 74, что является положением y представления коллекции в контроллере основного представления.
Может кто-нибудь объяснить мне, что я делаю неправильно???
Мне просто нужен декоративный вид, который покрывает всю высоту экрана на iphone/ipad.
С другой стороны, у меня нет проблем со значением x, которое является шириной представления украшения. Это заставляет меня задуматься, должен ли я аннулировать представление при изменении атрибутов? Пользовательский макет пересчитывает атрибуты при каждой прокрутке. И [self invalidateLayout] в пользовательском макете, похоже, ничего не меняет.