介绍

如果在应用程序中动态更改背景颜色,则由于背景颜色混入,文本将变得不可见。
找到了一个不会出现这种问题的方法,所以介绍一下。

示例应用

【SwiftUI】文字色を背景色の反対色にする

执行

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

相关文章: