ios - SwiftUI:带有文本视图的混合模式使重叠区域为白色,其余为黑色
问题描述
我正在尝试制作一个文本视图,将与另一个视图重叠的区域的颜色切换为白色,其余部分为黑色。
下面是这个问题之后的代码试用,它使用混合模式,但它使重叠区域变为绿色,并且它基于背景视图颜色。 我希望它始终为白色,而不管重叠的视图颜色和文本视图的其余部分为黑色。
struct ContentView: View {
var body: some View {
ZStack() {
Color.purple.frame(width: 200, height: 40, alignment: .center)
.offset(x: 0, y: 20)
Text("Over")
.foregroundColor(Color.white)
.font(.system(size: 55, weight: .bold, design: .rounded))
.offset(x: 10, y: 0)
.blendMode(.difference)
}
.frame(width: 200, height: 100, alignment: .center)
}
}
解决方案
请改用 2 个文本和一个蒙版。
struct ContentView: View {
var body: some View {
ZStack {
Color.purple
.frame(width: 200, height: 40, alignment: .center)
.offset(x: 0, y: 20)
Text("Over")
.foregroundColor(Color.black)
.font(.system(size: 55, weight: .bold, design: .rounded))
.offset(x: 10, y: 0)
Text("Over")
.foregroundColor(Color.white)
.font(.system(size: 55, weight: .bold, design: .rounded))
.offset(x: 10, y: 0)
.mask(Rectangle().frame(height: 20).offset(x: 0, y: 10))
}
.frame(width: 200, height: 100, alignment: .center)
}
}
结果:
推荐阅读
- html - 如何在 Nginx 中使用动态生成的路由?
- c# - 错误“对象引用未设置为对象的实例。” 对于 CreateUserWithEmailAndPasswordAsync
- pytorch - 将 pytorch CNN 应用于视频?
- cowboy - 如何在牛仔服务器上禁用 HTTP 方法
- javascript - 如何获取事件的 textContent 长度
- r - 列表中对象的动态命名
- c# - 绑定后保持按钮状态不起作用
- python - 使用 Pandas 在现有的大型 CSV 文件中插入一列,而不会消耗太多 RAM
- kubernetes - 遥测混频器日志
- cassandra - ScyllaDB - [无效查询] 消息 =“封送错误:毫秒长度超出预期 (6)”