【问题标题】:How to change the screen background color in SwiftUI mac app?如何在 SwiftUI mac 应用程序中更改屏幕背景颜色?
【发布时间】:2021-05-27 10:24:10
【问题描述】:

我有以下代码:

    var body: some View {
        NavigationView {
            List {
                ForEach(users) { user in
                    HStack {
                        NetworkImage(
                            url: URL(string: "https://via.placeholder.com/100x100")
                        ).frame(width: 50, height: 50).cornerRadius(8.0)
                        Text(user.name)
                    }
                }
            }
            .navigationTitle("Users")
        }.onAppear {
            self.getUsers()
        }
    }

现在,如何在列表视图中移除这个半透明背景并使用像白色这样的纯色?

【问题讨论】:

    标签: swift macos swiftui


    【解决方案1】:

    您可以使用 listRowBackground() 修饰符为列表应用颜色。

    List {
        ForEach(0..<10) {
            Text("Row \($0)")
        }
        .listRowBackground(Color.red)
    }
    

    上面是简单的 ListView 和您的代码 ==

    var body: some View {
            NavigationView {
                List {
                    ForEach(users) { user in
                        HStack {
                            NetworkImage(
                                url: URL(string: "https://via.placeholder.com/100x100")
                            ).frame(width: 50, height: 50).cornerRadius(8.0)
                            Text(user.name)
                        }
                    }.listRowBackground(Color.red)
                }
                .navigationTitle("Users")
            }.onAppear {
                self.getUsers()
            }
        }
    

    我希望这对你有用。

    【讨论】:

    • 它会产生这样的结果i.imgur.com/tvs3ITF.png。如何为列表视图周围的填充添加颜色?
    • 试试.colorMultiply(.red)而不是.listRowBackground(Color.red)
    • 我这样做了,但现在卷轴搞砸了。 Color.white 也不起作用
    • 是的全白
    【解决方案2】:

    迟到的答案...

    您是否尝试将您的列表嵌入到ZStack 中?并在列表之前应用颜色视图?

    var body: some View {
                NavigationView {
                    ZStack {
                        Color.white.edgesIgnoringSafeArea(.all) //<--- HERE!
                        List {
                            ForEach(users) { user in
                                HStack {
                                    NetworkImage(
                                        url: URL(string: "https://via.placeholder.com/100x100")
                                    ).frame(width: 50, height: 50).cornerRadius(8.0)
                                    Text(user.name)
                                }
                            }
                        }
                        .navigationTitle("Users")
                    }
                }.onAppear {
                    self.getUsers()
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 2021-02-07
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2011-02-14
      相关资源
      最近更新 更多