Swift 获取渐变色颜色值

最近需要完成一个字体颜色从白色随着滑动渐变到黑色的效果。所以需要获取颜色渐变值。

获取颜色 RGB 值

     /// 获取 rgbfunc colorRGB(_ color: UIColor) -> (r: CGFloat, g: CGFloat, b: CGFloat, a:CGFloat) {var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0color.getRed(&r, green: &g, blue: &b, alpha: &a)return (r,g,b,a)}

获取渐变色

原理: 获取对应 RGB 计算等分值即可。

public extension UIColor {/// 获取渐变色/// - Warning: 未考虑透明度问题。/// - Parameters:///   - startColor: 开始颜色///   - endColor: 结束颜色///   - count: 均分次数,返回颜色值数量,建议>=2/// - Returns: 渐变色数组, 数量始终会加上首位两种颜色static func gradientColors(start startColor:UIColor, end endColor: UIColor, count: Int) -> [UIColor] {/// 获取 rgbfunc colorRGB(_ color: UIColor) -> (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) {var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0color.getRed(&r, green: &g, blue: &b, alpha: &a)return (r,g,b,a)}let startRGB = colorRGB(startColor)let endRGB = colorRGB(endColor)// 2. 计算均分颜色值(算法参考:https://wenku.baidu.com/view/8578cb2879563c1ec5da71e0.html)guard count >= 2 else {return [startColor, endColor]}let stepR = (endRGB.r - startRGB.r)let stepG = (endRGB.g - startRGB.g)let stepB = (endRGB.b - startRGB.b)let red: CGFloat = startRGB.rlet green: CGFloat = startRGB.glet blue: CGFloat = startRGB.blet colors = (0..<count).map() {index -> UIColor inlet progress = CGFloat(index)/CGFloat(count-1)let color = UIColor(red: red + stepR * progress, green: green + stepG * progress , blue: blue + stepB * progress, alpha: 1)return color}return colors}
}

获取20等分颜色效果图

Swift 获取渐变色颜色值相关推荐

  1. 如何使用Swift获取App版本和内部版本号?

    本文翻译自:How do I get the App version and build number using Swift? I have an IOS app with an Azure bac ...

  2. JS 获取随机颜色值

    获取随机颜色值 function fn1(){return '#' + Math.floor( Math.random() * 0xffffff ).toString(16); }function f ...

  3. Swift获取当前网络状态Wifi/5G/4G/3G/2G

    通过Swift获取当前网络状态 通过第三方库Alamofire获取网络状态只能获取到ethernetOrWiFi.cellular.notReachable.unknown这几种网络状态,不能准确的获 ...

  4. swift 获取app版本号及 ios 版本号

    swift 获取app版本号及 ios 版本号 func versionCheck(){ let infoDictionary = NSBundle.mainBundle().infoDictiona ...

  5. php 图片填充颜色代码,PHP获取图片颜色值,检测图片主要颜色的代码:

    $i=imagecreatefromjpeg("photo3.jpg");//测试图片,自己定义一个,注意路径 for ($x=0;$x for ($y=0;$y $rgb = i ...

  6. swift获取图片像素颜色值

    extension UIImage{/**获取图片中的像素颜色值- parameter pos: 图片中的位置- returns: 颜色值*/func getPixelColor(pos:CGPoin ...

  7. swift 获取导航栏底部线

    获取导航栏底部阴影线,设置隐藏(iOS 15.0 之前可用) iOS 15之后可用下面viewDidLoad方法里面的隐藏 swift override func viewDidLoad() {sup ...

  8. swift获取openuuid_获取iOS设备唯一标示UUID——Swift版

    在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理.我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊. 具体可以分为如下几种: UDID IDFA IDFV ...

  9. iOS OC 及 Swift 获取手机型号,系统版本

    今天无意间使用到获取手机型号的问题了,发现直接写代码,根本无从下笔,无奈又找了以前写的代码,发现这些已经是几年写的了,新出的手机型号根本根本不存在了,今天正好使用,顺便更新了一下,这里我就更新一下iP ...

最新文章

  1. [转]安装和使用JD-Eclipse插件
  2. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
  3. 一条 update 语句引起的事故,这回让开发长长记性!!
  4. Java+eclipse的配置
  5. Altium designer中高亮元器件或网络时对比度调节
  6. launch mysql_Mac Pro 开机自启动 PHP-FPM,Nginx,MySql 等软件
  7. GS使用HTTPS登录的设置过程
  8. CRecordset类
  9. Python批量替换掉某些值为新的值
  10. 三周第二次课(12月26)
  11. linux查看文件时显示行号,linux中查看文件时显示行号
  12. 为什么新创企业都喜欢用ai域名?
  13. Android 测试环境噪音分贝
  14. ant design vue折叠面板自定义header
  15. 端口扫描 -- scanport和superscan
  16. 数学最高奖菲尔兹奖得主加入华为!研究数学大一统理论,任正非曾说“国家若要强盛,数学是基础”...
  17. spring 集成MongoDB错误Interrupted acquiring a permit to retrieve an item from the pool
  18. The Battle of Chibi---赤壁之战(DP+数据结构(树状数组))
  19. 简单的一道 SQL 题,谈如何提高编程水平
  20. nodejs http调用报错:socket hang up

热门文章

  1. 用vue优雅地编写UI组件的几条指导原则
  2. UVA 10479 The Hendrie Sequence
  3. eclipse.ini内存设置(转)
  4. 荣耀9将要回归金属材质,网友直呼:看着就很贵
  5. defensive-bash-programming
  6. codewars068 - Convert string to camel case
  7. java中二维数组求最大值代码。。。。。。不懂呀
  8. 用牛顿迭代法求浮点数的平方根
  9. 软件“身份证”频被盗 金山安全呼吁企业加强管理
  10. 微软代号为“Volta”的编程工具集预览