利用CAGradientLayer自定義顏色漸變view

說(shuō)個(gè)故事:
UI設(shè)計(jì)對(duì)大家說(shuō):“我們拒絕炒現(xiàn)飯!"雹拄。
然后就加了一波特效收奔。
程序員猝。

效果分析:

1.水波動(dòng)畫(huà)滓玖。
2.背景顏色漸變坪哄。

需求我就看到兩個(gè)字:漸變
實(shí)現(xiàn)思路:

1.水波動(dòng)畫(huà),用CGMutablePathRef和三角函數(shù)畫(huà)出波浪線势篡,讓后利用CADisplayLink將內(nèi)容實(shí)時(shí)更新到屏幕上翩肌。

2.背景顏色漸變,利用漸變層CAGradientLayer將背景顏色由到深漸變禁悠,然后在利用定時(shí)器加三角函數(shù)實(shí)時(shí)變動(dòng)起點(diǎn)和終點(diǎn)的顏色念祭。

DCGradientView.gif
代碼邏輯:

代碼直接看demo吧DCGradientView
背景顏色漸變的核心代碼如下:

利用定時(shí)器實(shí)時(shí)改變顏色RGB
關(guān)于顏色漸變嘗試過(guò)的代碼:
 if (self.gradLayer == nil) {
        self.gradLayer = [CAGradientLayer layer];
        self.gradLayer.frame = self.bounds;
    }
    self.gradLayer.startPoint = CGPointMake(0, 0.8);
    self.gradLayer.endPoint = CGPointMake(1, 0.2);
    
    //create colors, important section
    NSMutableArray *colors = [NSMutableArray array];
    for (NSInteger deg = 0; deg <= 360; deg += 1) {
        
        UIColor *color;
        color = [UIColor colorWithHue:1.0 * deg / 360.0
                           saturation:1.0
                           brightness:1.0
                                alpha:1.0];
        [colors addObject:(id)[color CGColor]];
    }
    [self.gradLayer setColors:[NSArray arrayWithArray:colors]];

效果如下:

DCGradientView1.gif

可以通過(guò)改變for循環(huán)里面的區(qū)間值,從而達(dá)到某一顏色漸變的效果碍侦。但是選取的顏色始終達(dá)不到設(shè)計(jì)的要求粱坤,所以放棄。

還嘗試?yán)霉接?jì)算RGB瓷产。
Gradient = A + (B-A) / Step * N每個(gè)RGB都要利用這個(gè)公式計(jì)算站玄,A是開(kāi)始值,B是結(jié)束值濒旦,Step分成的總份數(shù)株旷,N是當(dāng)前的份數(shù)。

NSMutableArray *colors = [NSMutableArray array];

    for (int i = 1; i<17; i ++) {
        
        float r = 37 + (13-37)/16*i;
        
        float g = 191 + (150-191)/16*i;
        
        float b = 191 + (173-191)/16*i;
        
        UIColor *color = [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1];
        
        [colors addObject:(id)[color CGColor]];
    }
    for (int i = 1; i<17; i ++) {

        float r2 = 13 + (37-13)/16*i;
        
        float g2 = 150 + (191-150)/16*i;
        
        float b2 = 173 + (191-173)/16*i;
        
        
        UIColor *color2 = [UIColor colorWithRed:r2/255.0 green:g2/255.0 blue:b2/255.0 alpha:1];
        
    
        [colors addObject:(id)[color2 CGColor]];

    }

顏色由淺到深尔邓,再由深到淺逐漸變化晾剖,所以對(duì)稱著添加了一遍。這實(shí)現(xiàn)的效果跟最終效果很接近铃拇,但是仔細(xì)看會(huì)發(fā)現(xiàn)钞瀑,顏色會(huì)有一條條的感覺(jué),顏色分布不是很細(xì)膩慷荔。所以也放棄雕什。


DCGradientView#

怎么覺(jué)得代碼清楚得連注釋都不用寫(xiě)-_-``

轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市显晶,隨后出現(xiàn)的幾起案子贷岸,更是在濱河造成了極大的恐慌,老刑警劉巖磷雇,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偿警,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡唯笙,警方通過(guò)查閱死者的電腦和手機(jī)螟蒸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)盒使,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人七嫌,你說(shuō)我怎么就攤上這事少办。” “怎么了诵原?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵英妓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绍赛,道長(zhǎng)蔓纠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任吗蚌,我火速辦了婚禮腿倚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘褪测。我一直安慰自己猴誊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布侮措。 她就那樣靜靜地躺著懈叹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪分扎。 梳的紋絲不亂的頭發(fā)上澄成,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音畏吓,去河邊找鬼墨状。 笑死,一個(gè)胖子當(dāng)著我的面吹牛菲饼,可吹牛的內(nèi)容都是我干的肾砂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼宏悦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镐确!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起饼煞,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤源葫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后砖瞧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體息堂,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荣堰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片床未。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖振坚,靈堂內(nèi)的尸體忽然破棺而出即硼,到底是詐尸還是另有隱情,我是刑警寧澤屡拨,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站褥实,受9級(jí)特大地震影響呀狼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜损离,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一哥艇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧僻澎,春花似錦貌踏、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至秉氧,卻和暖如春眷昆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汁咏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工亚斋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攘滩。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓帅刊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親漂问。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赖瞒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件级解、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,094評(píng)論 4 62
  • 人世情感的深刻思考 ——蘇軾詠七夕詞賞析 王傳學(xué) 宋代文學(xué)家蘇軾冒黑,寫(xiě)了多首詠七夕的詩(shī)詞,表現(xiàn)了他真誠(chéng)的情思和對(duì)人世...
    王傳學(xué)閱讀 1,457評(píng)論 4 6