我再次努力将NSViews背景颜色设置为透明。我有一个NSCollectionView
作为NSClipView
的一部分,它是NSScrollview
的一部分。我的MainViewController
有collectionView
的出口。添加两行代码并在编译背景后有时是透明的,但大多数时候不是:
view.wantsLayer = true
collectionView.layer?.backgroundColor = NSColor.clear.cgColor
我还试图选择/取消选择" Draw Background" IB中NSScrollView
的属性没有任何影响。
我在这里想念什么
答案 0 :(得分:5)
好的,经过漫长的邪恶试验和错误阶段后,我至少为自己找到了一个解决方案。要设置两种背景颜色以获得正确的行为:
答案 1 :(得分:5)
我努力让我的NSCollectionView背景“透明”@JFS解决方案指向了正确的方向:我终于通过设置两者父scrollView和collectionView背景来实现它: / p>
cvScrollView.backgroundColor = NSColor.clear
collectionView.backgroundColors = [NSColor.clear]
答案 2 :(得分:0)
要明确NSScrollView
的背景,Swift 4.2中最好的选择是“不绘制背景”。让我们来看一个编程示例:
let scrollView = NSScrollView()
scrollView.drawsBackground = false
scrollView.contentView.drawsBackground = false
NSCollectionView
的各个部分都有背景,因此您需要为各个部分指定颜色
let collectionView = NSCollectionView()
collectionView.backgroundColors = [.clear]
如果将backgroundColors
设置为nil
或为空数组,则背景颜色默认情况下设置为白色。
如果您为NSCollectionView
设置了背景视图,则此数组将被忽略
您可以尝试将NSView
为零的frame
作为backgroundView
的{{1}}