重复图案图像作为 SwiftUI 中的背景?

问题描述 投票:0回答:2

我正在尝试将图像设置为背景并在整个屏幕上重复它。在 UIKit 中,它就像这行代码一样简单:

view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))

SwiftUI 中有等效的吗?

var body: some View {
  HStack {
    VStack {
      Spacer()
    }
    Spacer()
  }
  .background(
    Image("background") // Need this pattern image repeated throughout the page
  )
}
swift swiftui
2个回答
39
投票

最简单的方法是使用调整大小修饰符并将调整大小模式设置为

Image.ResizingMode.tile

Image("background")
    .resizable(resizingMode: .tile)

0
投票

旧线程,但由于该线程在 Google 搜索中显示较高,并且由于

.resizable(resizingMode: .tile)
不适用于系统符号,因此从 iOS 15 开始,我们可以执行以下操作:

struct ContentView: View {
    var body: some View {
        Rectangle()
            .foregroundStyle(.image(
                Image(systemName: "questionmark.circle")
            ))
            .font(.system(size: 50))
    }
}

Background of tiled image with system symbol 完全归功于我发现的这篇博文:https://fatbobman.com/en/posts/how-to-tile-images-in-swiftui/

© www.soinside.com 2019 - 2024. All rights reserved.