介绍
如果在应用程序中动态更改背景颜色,则由于背景颜色混入,文本将变得不可见。
找到了一个不会出现这种问题的方法,所以介绍一下。
示例应用
执行
import SwiftUI
struct ContentView: View {
@State var percentage: CGFloat = 100
var body: some View {
VStack(alignment: .center) {
batteryShape.overlay(batteryText)
Slider(value: $percentage, in: 0...100)
.frame(width: 250)
}
}
var batteryText: some View {
Text("(Int(percentage))")
.font(.system(size: 70, weight: .black))
.foregroundColor(.white)
+ .blendMode(.difference)
}
var batteryShape: some View {
ZStack(alignment: .center) {
RoundedRectangle(cornerRadius: 15)
.stroke(Color.strokeColor, lineWidth: 6)
.frame(width: 250, height: 120)
RoundedRectangle(cornerRadius: 10)
.frame(width: 230 * (percentage / 100), height: 100, alignment: .leading)
.alignmentGuide(HorizontalAlignment.center) { _ in 115 }
}
}
}
观点.blendMode(.difference)
通过指定这个,它变成背景颜色的反色
结尾
我希望 iPhone 上的电池显示看起来像这个示例应用程序......哈哈
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628738.html