ios 做一個完整的漸變進度條

效果圖:


gif.gif

注意點:
1、在設置貝塞爾曲線繪制圓環(huán)的時候铺呵,半徑必須減去線寬的一半。
2隧熙、蒙版的使用片挂。蒙版與蒙版蓋住的layer,最終顯示的蒙版的顏色與形狀,所以蒙版顏色fillColor設置為透明色音念。

第一步沪饺,繪制背景圓環(huán)。

1.png

繪制貝塞爾曲線的時候需要注意默認從0 開始闷愤,參考坐標系整葡。貼一張圖


20160923141208631.png

需要注意的是,繪制圓環(huán)讥脐,填充色設置為透明遭居,描邊色需要設置。貝塞爾曲線的開始的位置為 -0.5 *M_PI旬渠,結(jié)束位置為 1.5 *M_PI俱萍;

 //背景灰色
    CAShapeLayer *shapeLayer =[[CAShapeLayer alloc]init];
    
    shapeLayer.frame = CGRectMake(0, 0, rect.size.width, rect.size.width);
    shapeLayer.lineWidth = _lineWidth; //線寬
    
    shapeLayer.fillColor =[UIColor clearColor].CGColor; //填充顏色
    shapeLayer.strokeColor = LBColor(50, 50, 50, 1).CGColor; //描邊顏色
    
    
    CGPoint center =  CGPointMake((rect.size.width )/2, (rect.size.width)/2);
    
    UIBezierPath *bezierPath =[UIBezierPath bezierPathWithArcCenter:center radius:(rect.size.width- _lineWidth)/2 startAngle:-0.5 *M_PI endAngle:1.5 *M_PI clockwise:YES];  //一定要減去線寬的一半
    shapeLayer.path = bezierPath.CGPath;
    
    [self.layer addSublayer:shapeLayer];

第二步繪制漸變色

2.png

如上面,是從上到下的藍色漸變告丢。

關于梯度漸變引用一張圖


梯度.png

根據(jù)需要選擇軸向漸變還是徑向漸變枪蘑。

 //漸變色,加蒙版岖免,顯示的蒙版的區(qū)域
    CAGradientLayer *gradientLayer =[[CAGradientLayer alloc]init];
    
    gradientLayer.frame = self.bounds;
    
    gradientLayer.colors = @[(id)[UIColor hexStringToColor:@"#5F98FC"].CGColor,(id)[UIColor hexStringToColor:@"#47BFFC"].CGColor];
    
    
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(0, 1); //徑向漸變
    
    [self.layer addSublayer:gradientLayer];

為需要添加蒙版的layer添加蒙版

 
    self.foreLayer = [CAShapeLayer layer];
    self.foreLayer.frame = self.bounds;
    
    self.foreLayer.fillColor =[UIColor clearColor].CGColor;
    
    self.foreLayer.lineWidth = self.lineWidth;
    self.foreLayer.strokeColor = [UIColor redColor].CGColor; //顏色沒用
    
    self.foreLayer.strokeEnd = 0;
    self.foreLayer.lineCap = kCALineCapRound;
    
    self.foreLayer.path = bezierPath.CGPath;
    
    gradientLayer.mask = self.foreLayer;

因為貝塞爾曲線開始的位置是-0.5 *M_PI腥寇,strokeEnd 決定了描邊的進度。

demo 地址:漸變圓環(huán)進度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末觅捆,一起剝皮案震驚了整個濱河市赦役,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栅炒,老刑警劉巖掂摔,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赢赊,居然都是意外死亡乙漓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門释移,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叭披,“玉大人,你說我怎么就攤上這事玩讳∩” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵熏纯,是天一觀的道長同诫。 經(jīng)常有香客問我,道長樟澜,這世上最難降的妖魔是什么误窖? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任叮盘,我火速辦了婚禮,結(jié)果婚禮上霹俺,老公的妹妹穿的比我還像新娘柔吼。我一直安慰自己,他們只是感情好丙唧,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布嚷堡。 她就那樣靜靜地躺著,像睡著了一般艇棕。 火紅的嫁衣襯著肌膚如雪蝌戒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天沼琉,我揣著相機與錄音北苟,去河邊找鬼。 笑死打瘪,一個胖子當著我的面吹牛友鼻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闺骚,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼彩扔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了僻爽?” 一聲冷哼從身側(cè)響起虫碉,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胸梆,沒想到半個月后敦捧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡碰镜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年兢卵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绪颖。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡秽荤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柠横,到底是詐尸還是另有隱情窃款,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布滓鸠,位于F島的核電站雁乡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏糜俗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悠抹。 院中可真熱鬧珠月,春花似錦、人聲如沸楔敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卵凑。三九已至庆聘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勺卢,已是汗流浹背伙判。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留黑忱,地道東北人宴抚。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像甫煞,于是被迫代替她去往敵國和親菇曲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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