2013-05-15 5 views
28

Я разрабатываю небольшую коллекцию «framework», чтобы вести себя как панель вкладок браузера (думаю, хром) на iPad. Код полностью выполнен, настраивается по расписанию, переупорядочивается и так далее:CollectionView background clearColor not working

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

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

• TabBarCell .h/.m/.xib (подкласс collectionviewcell)

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

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

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

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

ответ

8

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

41

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

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

Спасибо Fogmeister. В качестве альтернативы можно установить collectionView.backgroundView.backgroundColor = [UIColor clearColor] – CodePlumber

+3

Просто используйте нулевой вид фона. Не заморачивайся с пустым: self.collectionView! .backgroundView = nil –

+2

@JoelTeply спасибо, я позволю себе два с половиной года назад самостоятельно узнать. – Fogmeister

45

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

+4

Это должен быть принятый ответ – vahotm

5

упускают при установке UICollectionView S Цвет фона в раскадровке:

Первоначально выбранное значение По умолчанию является Black (парадоксально).
Вы должны явно выбрать Очистить цвет для прозрачности.

отметить также, что изображение в раскадровке сразу меняется, когда это делается 'право' ...

1

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

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

Зачем вам нужно применять 'alpha' от 0 до' clear', который является полностью прозрачным? – Ixx

+0

@Ixx Для того, чтобы подпункты не становились прозрачными –

0

Fogmeister «s answer работал большой.Адаптированные к Swift 3, было бы:

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

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

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

Swift 4.0 из Fogmeister «s answer

self.collectionView.backgroundColor = UIColor.clear 
self.collectionView.backgroundView = UIView.init(frame: CGRect.zero) 
0

В быстры эта работа со мной:

self.collectionView.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.0)