使背景图像和顶部视图透明

时间:2020-03-18 20:34:12

标签: ios swift swiftui

第一次使用SwiftUI,如何使imageForBackground背景和其他所有内容透明?

var body: some View {
    NavigationView {
        List(0..<5) { index in
            NavigationLink(destination: Text("\(index)")) {
                Image(systemName: "photo")
                VStack {
                    Text("\(index)")
                }
            }
        }
        .navigationBarTitle(Text("Hello World"), displayMode: .large)    
    }
    .padding()
    .frame(width: nil)
    .background(Image("imageForBackground"))
}

2 个答案:

答案 0 :(得分:1)

我无法使用“列表”视图显示背景图像,但是使用了另一种方法 使用ScrollView和ForEach可以实现我认为想要的功能。

var body: some View {
    NavigationView {
        ScrollView {
            VStack {
                ForEach(0..<10, id: \.self) { index in
                    NavigationLink(destination: Text("\(index)")) {
                        Image(systemName: "photo")
                        Text("\(index)")
                        Spacer()
                    }.padding(10)
                }
            }
        }.background(Image(systemName: "globe") // Image("imageForBackground")
            .resizable()
            .scaledToFit()
            .foregroundColor(.green))
        .navigationBarTitle(Text("Hello World"), displayMode: .large)
    }
}

答案 1 :(得分:0)

在SwiftUI中,有一个特定的修饰符称为opacity,可用于更改任何颜色的alpha等级并使之透明。

例如在您的图片盒中

Image("myImage").opacity(0.8) 

“透明”值越低,照片将变得越透明。

根据您的具体情况

 .background(Image("imageForBackground").opacity(0.2))

您可以使用相同的颜色

Color(red: 1.0, green: 0, blue: 1.0, opacity: 0.2)

希望我有帮助