web-dev-qa-db-ja.com

CollectionViewの背景clearColorが機能しない

私は、iPadでブラウザのタブバー(クロムを考える)のように動作する小さなコレクションビュー「フレームワーク」を開発しています。コードはすべて完了し、カスタムフローレイアウト、並べ替えなどが行われ、次のように構成されています。

•TabBarCollectionViewController .h/.m/.xibには、コレクションビューの高ロジック(デリゲート+データソースメソッド)が含まれています。 collectionView設定を構成し、カスタムフローレイアウトを設定するためのxibがあります(これはプログラムで行うこともできますが、そうするほうが簡単です)。

•CustomFlowLayout .h/.m(フローレイアウトのサブクラス)

•TabBarCell .h/.m/.xib(collectionviewcellのサブクラス)

次に、メインViewController(このviewControllerには多くのchildViewControllerとサブビューがあります)のchildViewControllerとしてTabBarCVCを追加し、次にサブビューとして追加します。この時点で、すべてが機能しています。

今、問題、それは私がこれを行う方法を見つけられなかったと信じられないほど愚かですcollectionViewのbackgroundColorはclearColorに設定できません。グレーまたは任意の色で配置できますが、透明度をサポートしていません。セルの背景色も明確であり、機能します。

背後のメインビューにテクスチャを表示するには、collectionViewを透明にする必要があります。どんな洞察も大いに感謝されるでしょう、あるいは多分私はアップルに私の最初のレーダーを埋めます。

ソリューションが見つからない場合は、collectionViewの背後にあるはずのテクスチャの「スクリーンショット」を追加し、collectionViewのbackgroundViewにimageViewとして追加します。

32
nebuto

わかりましたので、私は今かなり愚かな感じです。空のUIViewを残し、テスト用のcollectionViewのコンテナーとして機能しました。私は単にそれを削除するのを忘れていた、すべてがすてきなclearColorでうまく動作しています...

10
nebuto

私の場合、ストーリーボードの背景色をデフォルトに設定しました。これにより、背景が黒くなりました。クリアカラーへの変更が機能しました。

enter image description here

86
Kyle Robson

色をクリアに設定し、背景ビューを空のビューに設定してみてください...

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

StoryboardでICollectionView s Background Colorを設定するときは注意してください:

最初に選択された値デフォルト(逆に)です。
ビューを透明にするには、Clear Colorを明示的に選択する必要があります。

また、ストーリーボードのプレビューは、「正しく」行うとすぐに変更されることに注意してください...

7
DaniEll

最も簡単な解決策は、カラーピッカーで任意の色を選択してコレクションビューの背景を変更し、不透明度を0%にするだけです。

2
Dary

Fogmeisteranswer うまくいきました。 Swift 3に適応、それは:

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

In Swift 3:

collectionViewVideo.backgroundColor = UIColor.clear.withAlphaComponent(0)
1
Sarfaraz Khan

Swiftこの作品は私と一緒に:

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

それを修正するために何をしたか

ストーリーボードからコレクションビューの背景色をクリアカラーとして設定

次に、メインビューの色を任意の色に設定します(白に設定します)。

0
Logic

素敵な半透明の白い背景を使用するには:

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

Fogmeisteranswer からのSwift 4.0

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