使用 SwiftUI 在 Apple Watch 上列出项目的背景

Sea*_*ins 1 apple-watch swiftui vstack

我正在致力于在 SwiftUI 中构建 Apple Watch 屏幕。布局工作得很好,但颜色样式的某些方面我似乎无法弄清楚。这是我的代码:

struct Watch3ThingsMainUI: View {
    var goals: [Goal]

    var body: some View {

        VStack {
            Text("3things")
                .foregroundColor(Color("3thingsBlue"))

            List(goals) { goal in
                HStack {
                    Text(goal.name)

                    Spacer()

                    Image(systemName: "gear")
                }
                .background(Color.blue)
            }
            .background(Color.green)
            .foregroundColor(Color.red)
            .accentColor(Color.yellow)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是它的渲染方式的截图:

示例屏幕截图

您会注意到,HStack 的蓝色背景仅覆盖了一个矩形区域,而不是列表似乎自动创建的整个按钮。奇怪的是,虽然列表支持背景修改器,但它似乎被忽略了——没有任何颜色是绿色的。

我希望能够确定整个按钮的背景,但我想不出一种方法来做到这一点——无论我尝试什么恶作剧,它在 HStack 周围仍然顽固地保持深灰色。

Lie*_* Vo 5

尝试把你的身体换成可以让整个按钮都是蓝色的

var body: some View {

    VStack {
        Text("3things")
            .foregroundColor(Color("3thingsBlue"))
        List {
            ForEach(self.goals) { goal in
                HStack {
                    Text(goal.name)
                    Spacer()
                    Image(systemName: "gear")
                }
                .listRowBackground(Color.blue)
            }
        }
        .foregroundColor(Color.red)
        .accentColor(Color.yellow)
    }
}
Run Code Online (Sandbox Code Playgroud)