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

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

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

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

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

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

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

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

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

11 ответов

Решение

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

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

введите описание изображения здесь

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

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

Будьте внимательны при настройке цвета фона UICollectionView в раскадровке:

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

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

Самое простое решение - просто выбрать любой цвет в палитре цветов, чтобы изменить фон коллекции, а затем установить непрозрачность до 0%.

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

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

Я решил это с помощью Swift 3:

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

Swift 4.0 из Fogmeister

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

В скором времени эта работа со мной:

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

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

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

Что сделал, чтобы это исправить

В режиме раскадровки установите цвет фона коллекции прозрачным

затем установите цвет основного вида на любой цвет, который вы хотите, (я установил на белый.)

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