日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

利用CAGradientLayer自定义颜色渐变view

發(fā)布時(shí)間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用CAGradientLayer自定义颜色渐变view 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

#####效果分析: 1.水波動(dòng)畫。 2.背景顏色漸變。

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

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

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

#####關(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 sectionNSMutableArray *colors = [NSMutableArray array];for (NSInteger deg = 0; deg <= 360; deg += 1) {UIColor *color;color = [UIColor colorWithHue:1.0 * deg / 360.0saturation:1.0brightness:1.0alpha:1.0];[colors addObject:(id)[color CGColor]];}[self.gradLayer setColors:[NSArray arrayWithArray:colors]]; 復(fù)制代碼

效果如下:

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

還嘗試?yán)霉接?jì)算RGB。 Gradient = A + (B-A) / Step * N每個(gè)RGB都要利用這個(gè)公式計(jì)算,A是開始值,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]];}復(fù)制代碼

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


DCGradientView

怎么覺得代碼清楚得連注釋都不用寫-_-``

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

總結(jié)

以上是生活随笔為你收集整理的利用CAGradientLayer自定义颜色渐变view的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。