SwiftUI popover背景色

时间:2020-05-11 15:21:47

标签: swiftui

使用UIKit,我可以使用UIPopoverPresentationController的{​​{1}}自定义弹出框的背景颜色。

这将更改包括箭头在内的颜色。

如何使用SwiftUI完成此操作?当我更改弹出框内容的背景颜色时,它不包含箭头:

Example of popover with different color arrow

1 个答案:

答案 0 :(得分:3)

您可以使用.scaleEffect(…)使背景视图占用更多空间。当它大于弹出窗口的内容时,它将填充箭头。

struct ContentView: View {
    @State var popoverVisible = false

    var body: some View {
        VStack {
            Button("Open Popover") {
                self.popoverVisible = true
            }
            .popover(isPresented: $popoverVisible) {
                ZStack {
                    // Scaled-up background
                    Color.blue
                        .scaleEffect(1.5)
                    
                    Text("Hello world")
                    .foregroundColor(.white)
                    .padding()
                }
            }
        }
    }
}

Device screenshot