【iOS】彩虹渐变色 的 Swift 实现
首先很感谢大家的支持与关注。《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 实现相关推荐
- [iOS] 完整源码, Swift语言 - 账号保存工具
代码地址如下: http://www.demodashi.com/demo/15017.html 1. 需求分析 作为一个开发者,平时肯定在各个平台,网站注册了各种账号:由于太多,很多时候都是注册之后 ...
- ipad/ios按钮背景颜色为渐变色?去除iOS按钮渐变色
ipad/ios背景颜色为透明渐变色?去除iOS按钮渐变色 input[type=button], input[type=submit], input[type=file], button { cur ...
- IOS gif图片播放 swift
IOS gif图片播放 swift 1. GIF在iOS平台上的几种加载方式 2. 第三方开源框架播放GIF 1. SDWebImage播放: 2. Kingfisher播放: 3. 自己实现加载GI ...
- iOS 视频捕获系列Swift之AVFoundation(一)
iOS 视频捕获系列之AVFoundation(一) AVCaptureMovieFileOutput系列 在iOS开发过程中,或多或少的都涉及视频的操作. 尤其在去年直播行业的带动下,移动端对视频的 ...
- [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
本文转载至:http://www.cnblogs.com/yangfaxian/p/3765081.html 全书目录: 一.Welcome to Swift 二.Language Guide 三.L ...
- IOS开发笔记(Swift):UITableView表格视图的静态使用
2019独角兽企业重金招聘Python工程师标准>>> 最近一段时间都在准备IOS的开发,学习swift语言,之前做过很多类型的开发:前端.Java Web..net.Android ...
- Firefox for iOS现身Github 使用Swift编写
http://www.cocoachina.com/industry/20141208/10545.html 自从Mozilla新CEO走马上任以来,该公司对于发展路线显然与以往有所不同,对该公司最重 ...
- iOS 15 中的 Swift 和 SwiftUI
iOS 15 包含 114 个使用 SwiftUI 的二进制文件,几乎是 iOS 14 的 3 倍.同样,包含至少一行 Swift 代码的二进制文件的数量在 iOS 14 和 iOS 15 之间多了差 ...
- iOS 访问控制权限【Swift】
对于每个语言都有属于自己的访问控制权限 对于Java来说:OC中提供了4个访问控制符: @private @package @protected @public . 对于iOS开发工程师使用OC语言的 ...
最新文章
- 敏捷项目管理过程改进
- SQLite3基本使用从shell到python
- 【SpringBoot 2】(一)基础知识了解学习
- 微型计算机接口技术与汇编语言课后答案
- 计算机使用技巧爆文,自媒体干货篇:利用这个小技巧可以五分钟之内写好一篇爆文!...
- 贝叶斯思维 统计建模的python_贝叶斯思维统计建模的Python学习法
- 实现语音对讲_什么是五方通话?智慧电梯SIP五方对讲系统详细方案
- python求解非递减排序的数组的一个旋转的最小元素
- 64脚和小于64脚的STM32进行AD时注意,参照电源处理方法(转)
- 山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt
- 人类常见的十大思维谬误
- python tokenize_python – 滥用nltk的word_tokenize(已发送)的后果
- 玩转HTML(004)
- 【2022-12-10 修订】如何将 BD(蓝光光盘)备份到硬盘 · 播放 BD 和 UHD BD
- 复正弦信号、实数信号的DFT
- 哪款mac写python_新款Mac Pro有几个圈圈?写几行Python数一下
- 哔哩哔哩前端笔试(卷1)
- 2字节、4字节、8字节的有符号整数的取值范围
- 工业控制系统的安全建议
- 使用MaxCompute搭建社交好友推荐系统
热门文章
- AcWing 904. 虫洞(SPFA or Djakarta or bellman判负环)
- AcWing 885. 求组合数 I(递推式预处理)
- 开始菜单跑到左边去了_你的车“跑偏”吗?也许是你的方向盘本身就不正
- 练习题︱ python 协同过滤ALS模型实现:商品推荐 + 用户人群放大
- [linux]linux IO 5种方式
- Penn Treebank Tags做点小翻译 (下篇)
- 使用IntelliJ IDEA开发Spring MVC HelloWorld
- Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
- nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
- WIN7新功能:跳转列表