透明的NSCollectionView背景

JFS*_*JFS 7 background-color nscollectionview swift

我再次努力将NSViews背景颜色设置为透明.我有一个NSCollectionView为部分NSClipView是一部分 NSScrollview.我MainViewController有一个出口collectionView.添加两行代码并在编译背景后有时是透明的,但大多数情况下不是:

view.wantsLayer = true
collectionView.layer?.backgroundColor = NSColor.clear.cgColor
Run Code Online (Sandbox Code Playgroud)

我还尝试选择/取消选择NSScrollViewIB中的"绘制背景"属性而没有任何影响.我在这里想念什么

JFS*_*JFS 5

好吧,经过漫长的邪恶试验和错误阶段后,我至少为自己找到了一个解决方案.要设置两种背景颜色以获得正确的行为:

  1. 背景颜色NSScrollView:

在此输入图像描述

  1. 所述NSCollectionView原色:

在此输入图像描述

两者都必须适当设置.在我将两者设置为相同的颜色时,我得到了我想要的背景.通过仅设置ScrollView背景颜色,在CollectionView中滚动项目时仍然存在白色背景.


cdf*_*982 5

我挣扎了一下试图让我的NSCollectionView背景"透明" @JFS解决我指出了正确的方向:我终于通过设置实现其父滚动视图和背景的CollectionView:

cvScrollView.backgroundColor = NSColor.clear
collectionView.backgroundColors = [NSColor.clear]
Run Code Online (Sandbox Code Playgroud)


Jes*_*mez 5

为了使 的背景清晰NSScrollView,Swift 4.2 中的最佳选项是“不绘制背景”。让我们看一个编程示例:

let scrollView = NSScrollView()
scrollView.drawsBackground = false
scrollView.contentView.drawsBackground = false
Run Code Online (Sandbox Code Playgroud)

NSCollectionView有部分背景,因此您需要指定部分颜色

let collectionView = NSCollectionView()
collectionView.backgroundColors = [.clear]
Run Code Online (Sandbox Code Playgroud)

如果设置backgroundColorsnil或空数组,则背景颜色默认设置为白色。

如果您设置背景视图NSCollectionView,则该数组将被忽略

您可以尝试将 aNSViewframe零作为backgroundViewforNSCollectionView