SwiftUI通过十六进制字符串颜创建颜色对象
SwiftUI通过十六进制字符串颜创建颜色对象

SwiftUI通过十六进制字符串颜创建颜色对象

在SwiftUI中可能需要使用十六进制字符串来指定前景色或背景色:

#FF4B00

例如,在Sketch软件中,设计的按钮背景色为:FF4B00。

因此,需要在SwiftUI通过十六进制字符串设置按钮的颜色。

设置过程

1、创建Color扩展

import SwiftUI

extension Color {
    init(hex: String) {
        let scanner = Scanner(string: hex)
        
        // 如果十六进制字符串有前缀 '#', 去掉它
        if hex.hasPrefix("#") {
            scanner.currentIndex = hex.index(after: hex.startIndex)
        }
        
        var rgbValue: UInt64 = 0
        scanner.scanHexInt64(&rgbValue)
        
        let red = Double((rgbValue & 0xFF0000) >> 16) / 255.0
        let green = Double((rgbValue & 0x00FF00) >> 8) / 255.0
        let blue = Double(rgbValue & 0x0000FF) / 255.0
        
        self.init(red: red, green: green, blue: blue)
    }
}

在视图中,通过Color(hex:””)设置指定的颜色。

.background(Color(hex: "#FF4B00"))

最后设置的效果为:

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注