直播小程序源码,Swift 获取渐变色颜色值
直播小程序源码,Swift 获取渐变色颜色值
获取颜色 RGB 值
1 | /// 获取 rgb<br> func colorRGB(_ color: UIColor) -> (r: CGFloat, g: CGFloat, b: CGFloat, a:CGFloat) {<br> var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0<br> color.getRed(&r, green: &g, blue: &b, alpha: &a)<br> return (r,g,b,a)<br> }<br> |
获取渐变色
原理: 获取对应 RGB 计算等分值即可。
1 | <br> public extension UIColor {<br> /// 获取渐变色<br> /// - Warning: 未考虑透明度问题。<br> /// - Parameters:<br> /// - startColor: 开始颜色<br> /// - endColor: 结束颜色<br> /// - count: 均分次数,返回颜色值数量,建议>=2<br> /// - Returns: 渐变色数组, 数量始终会加上首位两种颜色<br> static func gradientColors(start startColor:UIColor, end endColor: UIColor, count: Int) -> [UIColor] {<br> /// 获取 rgb<br> func colorRGB(_ color: UIColor) -> (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) {<br> var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0<br> color.getRed(&r, green: &g, blue: &b, alpha: &a)<br> return (r,g,b,a)<br> }<br> <br> let startRGB = colorRGB(startColor)<br> let endRGB = colorRGB(endColor)<br> <br> // 2. 计算均分颜色值(算法参考:https://wenku.baidu.com/view/8578cb2879563c1ec5da71e0.html)<br> guard count >= 2 else {<br> return [startColor, endColor]<br> }<br> let stepR = (endRGB.r - startRGB.r)<br> let stepG = (endRGB.g - startRGB.g)<br> let stepB = (endRGB.b - startRGB.b)<br> <br> let red: CGFloat = startRGB.r<br> let green: CGFloat = startRGB.g<br> let blue: CGFloat = startRGB.b<br> <br> let colors = (0..<count).map() {<br> index -> UIColor in<br> let progress = CGFloat(index)/CGFloat(count-1)<br> let color = UIColor(red: red + stepR * progress, green: green + stepG * progress , blue: blue + stepB * progress, alpha: 1)<br> return color<br> }<br> return colors<br> }<br>} |
以上就是直播小程序源码,Swift 获取渐变色颜色值, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-28 在线直播源码,对话框左滑显示删除按钮
2022-03-28 短视频源码,在Android 中opengl es实现灯光效果
2022-03-28 短视频开发app,webservice自定义加入拦截器