Подтвердить что ты не робот

CollectionView background clearColor не работает

Я разрабатываю небольшую структуру коллекций, чтобы вести себя как панель вкладок браузера (думаю, хром) на iPad. Код полностью выполнен, настраиваемый макет потока, переупорядочение и т.д. И организовано так:

• TabBarCollectionViewController.h/.m/.xib содержит высокую логику представления коллекции (делегаты + методы источника данных). У меня есть xib для настройки параметров collectionView и установки пользовательского макета потока (я мог бы сделать это программно, но, как хорошо, так проще).

• CustomFlowLayout.h/.m(подкласс макета потока)

• TabBarCell.h/.m/.xib(подкласс коллекции viewview)

Затем я добавляю TabBarCVC в качестве childViewController на моем основном viewController (этот viewController имеет много childViewController и subviews), а затем как subview. На этом этапе все работает fiiiiine.

Теперь проблема, это так глупо, я не могу поверить, что не нашел способа сделать это, backgroundColor коллекцииView не может быть установлен для clearColor. Я могу поместить его в серый или любой цвет, но он не поддерживает прозрачность. Цвет фона ячейки также ясен и работает.

Мне нужно, чтобы collectionView был прозрачным, чтобы показать текстуру на главном экране. Любое понимание было бы оценено по достоинству, или, может быть, я воспользуюсь своим первым радаром для яблока.

Если я не могу найти какое-либо решение, я просто добавлю "скриншот" текстуры, которая должна находиться за коллекциейView, и добавьте ее как изображение в виде коллекции backgroundView.

4b9b3361

Ответ 1

Хорошо, теперь я чувствую себя довольно глупо. Я оставил пустой UIView позади, выступая в качестве контейнера для коллекцииView для теста. Я просто забыл удалить его, все работает отлично с помощью nice clearColor сейчас...

Ответ 2

Попробуйте установить цвет для очистки и вид фона на пустой вид, подобный этому...

self.collectionView.backgroundColor = [UIColor clearColor];
self.collectionView.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];

Ответ 3

В моем случае у меня был цвет фона в раскадровке, установленный на "По умолчанию". Это заставило его иметь черный фон. Сменило его на Clear Color.

Ответ 4

Остерегайтесь при установке цвета фона UICollectionViews в раскадровке:

Первоначально выбранное значение Значение по умолчанию - черный (счетчик).
Вы должны явно выбрать Clear Color для прозрачного представления.

Также обратите внимание, что Preview in Storyboard немедленно изменяется, когда это делается "right"...

Ответ 5

Я решил использовать его в Swift 3:

collectionViewVideo.backgroundColor = UIColor.clear.withAlphaComponent(0)

Ответ 6

Fogmeister ответ работал отлично. Адаптировано к Swift 3, это будет:

self.collectionView.backgroundColors = [NSColor.clear]
self.collectionView.backgroundView = NSView.init(frame: CGRect.zero)

Ответ 7

Чтобы иметь приятный полупрозрачный белый фон, используйте:

collectionView.backgroundColor = UIColor(displayP3Red: 1.0, green: 1.0, blue: 1.0, alpha: 0.35)