SackOfRainbows
提供了一种创建颜色生成器的表达性语法。以串联或并行方式链接生成器,可以轻松产生渐变和复杂图案。
要创建单个颜色,请使用 theColor()
。所有您喜欢的 UIColor
都已被作为别名进行了归档,以方便使用。
var redGenerator = theColor(red)
redGenerator.next() // returns red
redGenerator.next() // returns nil
您可以使用 theColors()
按顺序生成一组颜色,如下所示
var rainbow = theColors(red, orange, yellow, green, blue,
UIColor(red: 0.29, green: 0.0, blue: 0.51, alpha: 1), purple)
rainbow.next() // returns red
rainbow.next() // returns orange
rainbow.next() // returns yellow
// ...
创建一系列颜色在渐变色中的也很简单。只需指示开始颜色、结束颜色,以及从开始到结束的步数。
var tequilaSunrise = gradient().from(orange).to(red).steps(10)
tequilaSunrise.next() // returns orange
tequilaSunrise.next() // returns a slightly reddish orange
tequilaSunrise.next() // returns a slightly more reddish orange
// ...
要按顺序链接生成器,请使用 then()
。
let batman = theColors(blue, black)
let robin = theColors(yellow, green, red)
var batmanAndRobin = batman.then(robin)
要并行链接,请使用 alternate()
。
var olympics = alternate(batman, robin)
使用 times()
重复固定次数。
var doubleRainbow = rainbow.times(2)
要进入一个无尽颜色的世界,请使用 forever()
。
let blueToWhite = gradient().from(blue).to(white).steps(10)
let whiteToBlue = gradient().from(white).to(blue).steps(10)
var allTheWayAcrossTheSky = blueToWhite.then(whiteToBlue).forever()
SackOfRainbows 在 MIT 许可证下发布。