Swift 实用代码:使用 hex 表示的颜色

源码(source code)

convenience init(hexCode: String) {
    var cString:String = hexCode.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
    if (cString.hasPrefix("#")) {
        cString.remove(at: cString.startIndex)
    }
    if ((cString.count) != 6) {
        self.init()
    } else {
        var rgbValue:UInt32 = 0
        Scanner(string: cString).scanHexInt32(&rgbValue)
        self.init(red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
                  green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
                  blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
                  alpha: 1)
    }
}

用法:

view.backgroundColor = UIColor(hex: "#007CD1")

Key Point:

  1. 使用Scanner将字符串转换成十六进制数;
  2. 使用 AND (&) 和 >> 右移两种位操作来分离颜色的三个部分。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 生命,因意义而蜕变 你为什么而活: ①人生没有意义,但是我们每一个人要为自己确立一个意义。 ②真谛是,别人强加给你...
    白露微光阅读 2,066评论 2 4
  • 图一、 受北京大兴大火事件的影响,2017年11月21日我们小区对面的这个菜市场、超市人员被限制在3日内撤走,图一...
    Ann静蝶阅读 653评论 2 3
  • 天鸽帕卡结伴行,狂风骤雨电闪雷鸣,暴虐的飓风让家园满目疮痍,受灾的人儿泪眼迷离,望空哀叹求上帝。 这个世界哪有什么...
    雪落重阳阅读 235评论 38 42
  • 都说人生就是这样,你遇到过很多选择。像是一个三岔路口,你来着一个方向,你又不得不从其余两者中选择一个方向。当然,我...
    苏白听风阅读 348评论 1 0