1. ホーム
  2. ios

[解決済み] SwiftUIで背景を半透明にするには?

2022-02-14 01:47:26

質問

ナビゲーションバーの上のテキストの背景を半透明にし、テキストとナビゲーションバーが同じオブジェクトであるかのように見せるにはどうしたらよいでしょうか。

VStack(spacing: 0) {
    Text("Test")
        .padding(.top, 9.5)
        .padding(.bottom, 8)
        .frame(minWidth: 0, maxWidth: .infinity)
        .background(Color.gray) // I used a custom color set in the screenshot
        .font(.footnote)
    NavigationView {
        List {
            Text("Name")
            Text("Name")
            Text("Name")
        } .listStyle(GroupedListStyle())

        .navigationBarTitle(Text(""), displayMode: .inline)
        .navigationBarBackButtonHidden(true)
        .navigationBarItems(
            leading:
            Button("Cancel") {
                // self.presentationMode.wrappedValue.dismiss()
            },
            trailing:
            Button("Done") {

            }.disabled(true)
        )
    }
}

解決方法は?

SwiftUIの Color には opacity() を返す関数で、別の Color を指定された不透明度で指定します。不透明度1.0は同じ色になり、0.0は完全に透明になります。

例えば、完全に不透明な色と完全に透明な色の間にしたい場合は、変更します。

Text("Test")
        .padding(.top, 9.5)
        .padding(.bottom, 8)
        .frame(minWidth: 0, maxWidth: .infinity)
        .background(Color.gray)
        .font(.footnote)

へ。

Text("Test")
        .padding(.top, 9.5)
        .padding(.bottom, 8)
        .frame(minWidth: 0, maxWidth: .infinity)
        .background(Color.gray.opacity(0.5)) //Here is where we use the opacity
        .font(.footnote)

出典 https://developer.apple.com/documentation/swiftui/color