随着iOS 16中新的SwiftUI
更新,List
不再依赖于UITableView
。因此,我们用于将List
背景色设置为.clear
的以下代码片段现在无用:
UITableView.appearance().backgroundColor = .clear
我看到有人用introspect
来解决这个问题,但是有人知道另一种可能更干净的方法来实现同样的行为吗?
另请注意,在macOS
上,以下功能工作正常(使用Xcode 14 beta
和macOS Ventura
测试):
extension NSTableView {
open override func viewDidMoveToWindow() {
super.viewDidMoveToWindow()
backgroundColor = NSColor.clear
enclosingScrollView!.drawsBackground = false
}
}
4条答案
按热度按时间z4iuyo4d1#
iOS 16系统
更新:Xcode 14b3 +
只需使用新修饰符:
原件
现在他们使用
UICollectionView
作为后端,因此更新后的解决方案是更改相应的背景颜色:主要部分:
Test module on GitHub
nle07wnf2#
为此,我创建了一个自定义标识符来隐藏这个自定义滚动背景。
用法:
km0tfn4u3#
iOS 16添加了一个新的修改器scrollContentBackground(Visibility),用于自定义可滚动视图的背景可见性,包括
List
。您可以像这样隐藏标准系统背景,如果您提供了一个背景,它将显示列表的背景:
x6492ojm4#
从Xcode 14.2开始,工作代码为