swiftui - SwiftUI 反转掩码
问题描述
我正在尝试使用 swiftui 创建一个类似于屏幕截图中的视图。顶部框架应该是浅色的,其他地方应该是深色的。 SwiftUI 添加反转掩码 我试图在这里更改代码,但我做不到。我该怎么做?
到目前为止我来过的地方:黑色不显示全屏和面具不工作
func HoleShapeMask(in rect: CGRect) -> Path {
return
Path { path in
path.move(to: CGPoint(x: rect.minX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY))
path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY))
path.addLine(to: CGPoint(x: rect.minX, y: rect.minY))
}
}
struct ContentView: View {
@State var rect :CGRect = .zero
var body: some View {
GeometryReader{g in
Text("deneme")
.foregroundColor(.blue)
.frame(width: 124, height: 100, alignment: .center)
.background(Color.red)
.overlay(
GeometryReader { gp in
Color.clear.opacity(0.00001)
.onAppear(){
rect = gp.frame(in: .named("deneme"))
}
}
)
}
.coordinateSpace(name: "deneme")
.overlay(
Rectangle()
.fill(Color.black.opacity(0.8))
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .center)
.mask(HoleShapeMask(in: rect).fill(style: FillStyle(eoFill: true)))
)
}
}
解决方案
推荐阅读
- java - 使用 java 16 和 gradle 7 构建项目时出现“致命错误:无法在类路径或引导类路径中找到包 java.lang”
- google-sheets - 将 ROW 函数与公式要处理的范围结合使用
- python - 如果文件夹已经存在,如何创建子文件夹?
- amazon-web-services - 检索地图变量的子网 ID
- docker - 要在 yaml 文件中输入以进行 KNATIVE 部署的正确图像 url 是什么
- typescript - 如何将 SCSS 样式表添加到 Lit Web 组件?
- python - 将代码步骤组合成用户定义的函数
- r - 从其他行获取平均值到当前行
- c# - 在一种情况下,继承的依赖属性更改无法传播给子项
- asp.net-mvc - COM+ 激活库崩溃 .Net v4 工作进程