首先很感谢大家的支持与关注。《Web Color 的 Swfit 实现》一文一经公布。訪问量迅速攀升,让本人受宠若惊。

为表达感激之情,今天早上把彩虹渐变也顺手实现了。

最新代码&相关资料下载地址:https://github.com/duzixi/RainbowColors-with-Swift (持续维护)

生成函数原型:

  • func rainbowColor(x: Float) -> UIColor

參数取值范围:

x : 0 ~ 256 * 5 - 1

生成全部彩虹渐变色的演示样例:

class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.let viewHeight:Float = Float(self.view.frame.size.height)let viewWidth:Float = Float(self.view.frame.size.width)//Create all Rainbow Colorslet inc:Float = 256 * 5 / viewHeight;for (var i:Float = 0.0; i < 256 * 5; i += inc) {let view = UIView();view.frame = CGRectMake(0, 0 + i / inc, viewWidth, 1);view.backgroundColor = rainbowColor(i); // <----调用彩虹渐变色函数,參数必须是Float型self.view.addSubview(view);}}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

程序运行效果图:

源码參照:

(注意:下面源码未必最新。最新源码请点击进入本文上方的链接获取。)

<span style="font-family:Arial;font-size:14px;">//
//  RainbowColor.swift
//
//  Created by 杜子兮 on 14-6-29.
//  Copyright (c) 2014年 lanou. All rights reserved.
//import UIKit// x: 0 ~ 256 * 5 - 1
func rainbowColor(x :Float) -> UIColor {var unit:Float = 256var r:Float = 0, g:Float = 0, b:Float = 0if ( 0 <= x && x < unit) { //赤 -> 橙 -> 黄r = unit - 1g = x} else if (x < unit * 2) { //黄 -> 绿r = unit - 1 - x % unitg = unit - 1} else if (x < unit * 3) { //绿 -> 青g = unit - 1 - x % unit / 2b = x % unit} else if (x < unit * 4) { //青 -> 蓝g = unit / 2 - 1 - x % unit / 2b = unit - 1} else if (x < unit * 5) { //蓝 -> 紫r = x % unitb = unit - 1}return UIColor(red:r / (unit - 1), green:g / (unit - 1), blue:b / (unit - 1), alpha: 1.0)
}</span>

程序Bug:

调试环境:Xcode6 Beta

4s和5模拟器都没有问题。用5s測试的时候会提示运算符错误。

猜測是数据类型的问题。可是详细是什么原因没有调试成功,还请各位指教。

转载于:https://www.cnblogs.com/mengfanrong/p/5137804.html

【iOS】彩虹渐变色 的 Swift 实现相关推荐

  1. [iOS] 完整源码, Swift语言 - 账号保存工具

    代码地址如下: http://www.demodashi.com/demo/15017.html 1. 需求分析 作为一个开发者,平时肯定在各个平台,网站注册了各种账号:由于太多,很多时候都是注册之后 ...

  2. ipad/ios按钮背景颜色为渐变色?去除iOS按钮渐变色

    ipad/ios背景颜色为透明渐变色?去除iOS按钮渐变色 input[type=button], input[type=submit], input[type=file], button { cur ...

  3. IOS gif图片播放 swift

    IOS gif图片播放 swift 1. GIF在iOS平台上的几种加载方式 2. 第三方开源框架播放GIF 1. SDWebImage播放: 2. Kingfisher播放: 3. 自己实现加载GI ...

  4. iOS 视频捕获系列Swift之AVFoundation(一)

    iOS 视频捕获系列之AVFoundation(一) AVCaptureMovieFileOutput系列 在iOS开发过程中,或多或少的都涉及视频的操作. 尤其在去年直播行业的带动下,移动端对视频的 ...

  5. [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01

    本文转载至:http://www.cnblogs.com/yangfaxian/p/3765081.html 全书目录: 一.Welcome to Swift 二.Language Guide 三.L ...

  6. IOS开发笔记(Swift):UITableView表格视图的静态使用

    2019独角兽企业重金招聘Python工程师标准>>> 最近一段时间都在准备IOS的开发,学习swift语言,之前做过很多类型的开发:前端.Java Web..net.Android ...

  7. Firefox for iOS现身Github 使用Swift编写

    http://www.cocoachina.com/industry/20141208/10545.html 自从Mozilla新CEO走马上任以来,该公司对于发展路线显然与以往有所不同,对该公司最重 ...

  8. iOS 15 中的 Swift 和 SwiftUI

    iOS 15 包含 114 个使用 SwiftUI 的二进制文件,几乎是 iOS 14 的 3 倍.同样,包含至少一行 Swift 代码的二进制文件的数量在 iOS 14 和 iOS 15 之间多了差 ...

  9. iOS 访问控制权限【Swift】

    对于每个语言都有属于自己的访问控制权限 对于Java来说:OC中提供了4个访问控制符: @private @package @protected @public . 对于iOS开发工程师使用OC语言的 ...

最新文章

  1. 敏捷项目管理过程改进
  2. SQLite3基本使用从shell到python
  3. 【SpringBoot 2】(一)基础知识了解学习
  4. 微型计算机接口技术与汇编语言课后答案
  5. 计算机使用技巧爆文,自媒体干货篇:利用这个小技巧可以五分钟之内写好一篇爆文!...
  6. 贝叶斯思维 统计建模的python_贝叶斯思维统计建模的Python学习法
  7. 实现语音对讲_什么是五方通话?智慧电梯SIP五方对讲系统详细方案
  8. python求解非递减排序的数组的一个旋转的最小元素
  9. 64脚和小于64脚的STM32进行AD时注意,参照电源处理方法(转)
  10. 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
  11. 人类常见的十大思维谬误
  12. python tokenize_python – 滥用nltk的word_tokenize(已发送)的后果
  13. 玩转HTML(004)
  14. 【2022-12-10 修订】如何将 BD(蓝光光盘)备份到硬盘 · 播放 BD 和 UHD BD
  15. 复正弦信号、实数信号的DFT
  16. 哪款mac写python_新款Mac Pro有几个圈圈?写几行Python数一下
  17. 哔哩哔哩前端笔试(卷1)
  18. 2字节、4字节、8字节的有符号整数的取值范围
  19. 工业控制系统的安全建议
  20. 使用MaxCompute搭建社交好友推荐系统

热门文章

  1. AcWing 904. 虫洞(SPFA or Djakarta or bellman判负环)
  2. AcWing 885. 求组合数 I(递推式预处理)
  3. 开始菜单跑到左边去了_你的车“跑偏”吗?也许是你的方向盘本身就不正
  4. 练习题︱ python 协同过滤ALS模型实现:商品推荐 + 用户人群放大
  5. [linux]linux IO 5种方式
  6. Penn Treebank Tags做点小翻译 (下篇)
  7. 使用IntelliJ IDEA开发Spring MVC HelloWorld
  8. Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
  9. nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
  10. WIN7新功能:跳转列表