私は、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として追加します。
わかりましたので、私は今かなり愚かな感じです。空のUIViewを残し、テスト用のcollectionViewのコンテナーとして機能しました。私は単にそれを削除するのを忘れていた、すべてがすてきなclearColorでうまく動作しています...
色をクリアに設定し、背景ビューを空のビューに設定してみてください...
self.collectionView.backgroundColor = [UIColor clearColor];
self.collectionView.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];
StoryboardでICollectionView s Background Colorを設定するときは注意してください:
最初に選択された値デフォルトは黒(逆に)です。
ビューを透明にするには、Clear Colorを明示的に選択する必要があります。
また、ストーリーボードのプレビューは、「正しく」行うとすぐに変更されることに注意してください...
最も簡単な解決策は、カラーピッカーで任意の色を選択してコレクションビューの背景を変更し、不透明度を0%にするだけです。
Fogmeister の answer うまくいきました。 Swift 3に適応、それは:
self.collectionView.backgroundColors = [NSColor.clear]
self.collectionView.backgroundView = NSView.init(frame: CGRect.zero)
In Swift 3:
collectionViewVideo.backgroundColor = UIColor.clear.withAlphaComponent(0)
Swiftこの作品は私と一緒に:
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)
Fogmeister の answer からのSwift 4.0
self.collectionView.backgroundColor = UIColor.clear
self.collectionView.backgroundView = UIView.init(frame: CGRect.zero)