swift漸變色

本文內(nèi)容來源于http://www.hangge.com/,僅作學(xué)習(xí)記錄...
需求:視圖由上至下出現(xiàn)漸變色,點(diǎn)擊視圖更換另一組顏色蚕愤,有過渡動(dòng)畫效果。
代碼如下囊榜,有注釋

import UIKit

class ViewController: UIViewController,CAAnimationDelegate {
    
    //漸變色
    let colorsSet = [
        [UIColor.yellow.cgColor,UIColor.orange.cgColor],
        [UIColor.cyan.cgColor,UIColor.green.cgColor],
        [UIColor.magenta.cgColor,UIColor.blue.cgColor]
    ]
    
    //當(dāng)前漸變色索引
    var currentIndex = 0
    
    var gradientLayer : CAGradientLayer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //監(jiān)聽單擊事件审胸,每單擊一次就切換一組漸變色
        let tapSingle = UITapGestureRecognizer(target:self,action:#selector(tapSingleDid))
        tapSingle.numberOfTapsRequired = 1
        tapSingle.numberOfTouchesRequired = 1
        self.view .addGestureRecognizer(tapSingle)
        
        //初始化CAGradientLayer對(duì)象
        gradientLayer = CAGradientLayer()
        gradientLayer.colors = colorsSet.first
        gradientLayer.locations = [0.0,1.0]
        
        gradientLayer.frame = self.view.bounds
        self.view.layer.insertSublayer(gradientLayer, at: 0)
    }
    
    @objc func tapSingleDid() {
        var nextIndex = currentIndex + 1
        if nextIndex >= colorsSet.count {
            nextIndex = 0
        }
        
        //添加漸變色動(dòng)畫
        let colorChangeAnimation = CABasicAnimation(keyPath:"colors") //keyPath 小寫 k
        colorChangeAnimation.delegate = self
        colorChangeAnimation.duration = 2.0
        colorChangeAnimation.fromValue = colorsSet[currentIndex]
        colorChangeAnimation.toValue = colorsSet[nextIndex]
        colorChangeAnimation.fillMode = kCAFillModeForwards
        //動(dòng)畫結(jié)束后保持最終的效果
        colorChangeAnimation.isRemovedOnCompletion = false;
        gradientLayer.add(colorChangeAnimation, forKey: "colors")
        
        currentIndex = nextIndex
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卸勺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烫扼,老刑警劉巖曙求,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異映企,居然都是意外死亡悟狱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門堰氓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挤渐,“玉大人,你說我怎么就攤上這事双絮≡÷椋” “怎么了得问?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長软免。 經(jīng)常有香客問我宫纬,道長,這世上最難降的妖魔是什么膏萧? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任漓骚,我火速辦了婚禮,結(jié)果婚禮上榛泛,老公的妹妹穿的比我還像新娘蝌蹂。我一直安慰自己,他們只是感情好曹锨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布孤个。 她就那樣靜靜地躺著,像睡著了一般艘希。 火紅的嫁衣襯著肌膚如雪硼身。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天覆享,我揣著相機(jī)與錄音佳遂,去河邊找鬼。 笑死撒顿,一個(gè)胖子當(dāng)著我的面吹牛丑罪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凤壁,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吩屹,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了拧抖?” 一聲冷哼從身側(cè)響起煤搜,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唧席,沒想到半個(gè)月后擦盾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淌哟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年迹卢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒仓。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腐碱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掉弛,到底是詐尸還是另有隱情症见,我是刑警寧澤喂走,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站筒饰,受9級(jí)特大地震影響缴啡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓷们,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一业栅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谬晕,春花似錦碘裕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至不撑,卻和暖如春文兢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背焕檬。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工姆坚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人实愚。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓兼呵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腊敲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子击喂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • //創(chuàng)建漸變色層 let gradient:CAGradientLayer = CAGradientLayer()...
    旅途開發(fā)者閱讀 1,993評(píng)論 0 1
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件碰辅、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評(píng)論 4 62
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評(píng)論 25 707
  • (聽說懂昂,進(jìn)去的人沒回來過) (你覺得頭痛,忘記了一切没宾,只記得你姐姐三年前掉下來忍法,突然一陣頭痛,你忘記後面了) (咦...
    小雞魔人閱讀 66評(píng)論 0 0
  • 夏日正炎榕吼,我搬來藤椅坐在家門外的湖邊,乘著樹蔭勉失,好不愜意羹蚣。蟬鳴一聲比一聲響,我都要覺得那只蟬要比太陽大了乱凿。啊顽素,夏天...
    瞎掰少女閱讀 181評(píng)論 0 0