问题
I'm again struggling with setting NSViews background colors to transparent. I have a NSCollectionView
as part of NSClipView
which is part of a NSScrollview
. My MainViewController
has an outlet to the collectionView
. With adding the two lines of code and after compiling the background is sometimes transparent but most of the times not:
view.wantsLayer = true
collectionView.layer?.backgroundColor = NSColor.clear.cgColor
I also tried to select/de-select the "Draw Background" property of the NSScrollView
in the IB without any effects.
What do I miss here.
回答1:
Ok, after a long evil trial and error phase I found a solution at least for myself. There are two background colors to set in order to have the proper behavior:
- the background color of the
NSScrollView
:
- the
NSCollectionView
primary color:
Both have to be set appropriately. At the point I set both to the same color I got the background I want. With setting only the ScrollView background color there was still the white background when scrolling the items in the CollectionView.
回答2:
I struggled a bit attempting to get my NSCollectionView background "transparent" @JFS solution pointed me in the right direction: and I finally achieved it by setting both the parent scrollView and the collectionView backgrounds:
cvScrollView.backgroundColor = NSColor.clear
collectionView.backgroundColors = [NSColor.clear]
回答3:
To make clear background for NSScrollView
, the best option in Swift 4.2 is "Not draw a background". Let's get to view a programmatically example:
let scrollView = NSScrollView()
scrollView.drawsBackground = false
scrollView.contentView.drawsBackground = false
NSCollectionView
has background for sections, so you need to specify colors for sections
let collectionView = NSCollectionView()
collectionView.backgroundColors = [.clear]
If you set backgroundColors
to nil
or to empty array, the background color is set by default to white.
If you set a background view for NSCollectionView
, this array is ignored
You could try to put a NSView
with frame
zero as a backgroundView
for NSCollectionView
来源:https://stackoverflow.com/questions/42058337/transparent-nscollectionview-background