我再次努力将NSViews背景颜色设置为透明。我有一个NSCollectionView
作为NSClipView
的一部分,它是NSScrollview
的一部分。我的MainViewController
有collectionView
的出口。添加两行代码并在编译背景后有时是透明的,但大多数情况下不是:
view.wantsLayer = true
collectionView.layer?.backgroundColor = NSColor.clear.cgColor
我还尝试在IB中选择/取消选择NSScrollView
的“Draw Background”属性而没有任何影响。我在这里想念什么
我努力让我的NSCollectionView背景“透明”@JFS解决方案让我指向了正确的方向:我终于通过设置父scrollView和collectionView背景来实现它:
cvScrollView.backgroundColor = NSColor.clear
collectionView.backgroundColors = [NSColor.clear]
为了明确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
的NSCollectionView