SwiftUI 中表单部分的背景清晰?
Posted
技术标签:
【中文标题】SwiftUI 中表单部分的背景清晰?【英文标题】:Clear background for form sections in SwiftUI? 【发布时间】:2020-09-17 20:48:22 【问题描述】:我正在尝试删除某些部分的白色背景,以便元素正好位于灰色背景上,但我无法删除部分背景或使其透明。
这就是我正在尝试的:
struct ContentView: View
var body: some View
Form
Section
Text("Hello!")
Button
print("Clicked")
label:
Text("Click Me!!")
Section
VStack
Button("Button 1")
Spacer()
Button("Button 2")
.background(Color.clear) // Not doing anything
Section
VStack(alignment: .leading)
Text("Location")
.font(.headline)
Group
Text("Abc")
Text("Abc")
Text("Abc")
.font(.caption)
这就是它的样子:
我尝试将.background(Color.clear)
添加到Section
和VStack
,但没有任何效果。这在 SwiftUI 中是如何实现的?
【问题讨论】:
【参考方案1】:即使在 SwiftUI 2 中,Form
也是建立在 UIKit 之上的,特别是 UITableView
。
你需要移除默认UITableViewCell
的背景(只需要一次,最好在App中init
):
UITableViewCell.appearance().backgroundColor = UIColor.clear
并使用以下方法更改背景:
Section
VStack
Button("Button 1")
Spacer()
Button("Button 2")
.listRowBackground(Color.clear)
【讨论】:
我认为这会改变全球所有表格单元格的情况吗?但仍然觉得hacky。 Color.clear 真的应该自己工作。相反,这似乎非常接近:.listRowBackground(Color(.systemGroupedBackground))
@TruMan1,Form 是一个标准的外观控件。对标准控制的任何未正式记录的更改都是一种黑客行为,并且可能会停止使用任何系统更新。如果修饰符对它没有影响,那意味着它不应该有。其他一切由您自担风险。以上是关于SwiftUI 中表单部分的背景清晰?的主要内容,如果未能解决你的问题,请参考以下文章