【问题标题】:iOS SwfitUI set background image for list not celliOS SwiftUI为列表而不是单元格设置背景图像
【发布时间】:2020-04-25 13:52:26
【问题描述】:

我正在尝试为我的 ListView 提供一个不应该适用于每个单元格的背景图像。所以整个视图只有一张图像。 我试图将.background(Image("nameOfImage)) 添加为列表修饰符,但没有做任何事情。

NavigationView {
    List(elements) { element in 
        NavigationLink(destination: NextView) {
            Text(element.name)
            Image(element.image)
        }
    }.background(Image("nameOfImage"))
}

我也尝试过 ZStack,但我认为列表覆盖了我的图像

那么如何将图像作为列表背景或视图背景(上面的代码是整个视图)

【问题讨论】:

标签: ios swift swiftui swiftui-list swiftui-navigationlink


【解决方案1】:

它做到了,但关键是UITableViewUITableViewCell 具有默认的白色backgroundColor。你应该让它们透明以便看穿。

类似:

struct ContentView: View {

    init() {
        UITableView.appearance().backgroundColor = .clear // For tableView
        UITableViewCell.appearance().backgroundColor = .clear // For tableViewCell
    }

    var body: some View {
        NavigationView {
            List(0...10, id: \.self) { number in
                Text("\(number)")
            }.background(Image("BG"))
        }
    }
}

请注意,我已经简化了我的答案,使其独立于您项目的其他部分

【讨论】:

  • 谢谢,但由于我还是 iOS 编程的初学者,所以我像你一样尝试过。但这产生了两个我无法删除的错误:Closure containing a declaration cannot be used with function builder 'ViewBuilder'Initializers may only be declared within a type
  • 对不起,我的错。我在手机上,在这里写代码有点困难 :) 我已经更新了 mu 答案
  • 在你给我看之前我也试过了,但我遇到了另一个错误:Return from initializer without initializing all stored properties你能再帮我一次吗?不明白
  • 这与我朋友的问题无关。您可能忘记为所有存储的属性赋值。我已经简化了我的答案,使其独立于您项目的其他部分,并使其成为一个工作示例。
  • 这已经让我发疯了三天。我到处搜索。似乎比应该做的要难得多。有多少人会想到关闭 UI...谢谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
相关资源
最近更新 更多