有没有办法在SwiftUI中更改列表行的背景?

时间:2019-07-23 05:40:58

标签: swift swiftui

我一直试图一遍又一遍地更改SwiftUI中列表的背景,但没有成功。我只是不知道应该添加什么以使列表行没有颜色或更改为颜色。

让我们说下面的代码是我一直在使用的代码。它比我用于单元格的内容更基本,因为它只是文本。可以更改文本背景,但是我要寻找的是将整个行背景更改为颜色或图片。

    import numpy as np
    np.set_printoptions(suppress=True)
    data_1 = str(780e51)
    data_2 = syr(780e96)
    print(a)

我只希望单元格行更改背景,但是在亮模式下它们保持白色,而在暗模式下保持黑色。

3 个答案:

答案 0 :(得分:0)

您可以使用.colorMultiply()属性, 检查以下代码

代码已针对XCode 11 Beta 4更新

init() {
        UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.black]
        UINavigationBar.appearance().barTintColor = .blue
    }

    var body: some View {

        NavigationView {
            ZStack {
                HStack {
                    List(0...10) { test in
                        Spacer()
                        Text("This is a test")
                        Spacer()
                    }.colorMultiply(Color.pink)

                    List(0...10) { test2 in
                        Spacer()
                        Text("Also a test")
                            .background(Color.green)
                        Spacer()
                    }.colorMultiply(Color.green)
                }
            }.navigationBarTitle(Text("Test"), displayMode: .inline)
        }
    }

答案 1 :(得分:0)

尝试.colorMultiply(Color)。这将解决它。

 List(0...10) { test2 in
                Spacer()
                Text("Also a test")
                Spacer()
               }.colorMultiply(Color.red)

答案 2 :(得分:0)

我发现使用列表和节的一件事是它们是tupleview类型,即它们不是单个视图,并且border()和background()之类的东西适用于列表中的元素,而不是列表本身。要创建单个视图进行修改,您需要将它们嵌入堆栈中。