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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

iOS 做一个圆形渐变圆环

發(fā)布時(shí)間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 做一个圆形渐变圆环 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

代碼主要用到: CALayer+UIBezierPath+CAShapeLayer+CAGradientLayer+CABasicAnimation
1.創(chuàng)建一個(gè)圖層

CGFloat layerWH = 100;_contentLayer = [CALayer layer];[self.view.layer addSublayer:_contentLayer];_contentLayer.frame = CGRectMake(100, 100, layerWH, layerWH);_contentLayer.backgroundColor = [UIColor blueColor].CGColor;

效果如圖:

2.繪制一個(gè)路徑,再生成一個(gè)背景圓環(huán)加到view上

//創(chuàng)建圓環(huán)CGFloat lineWidth = 5;CGFloat radius = layerWH * 0.5 - lineWidth * 0.5;UIBezierPath *bezierPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(layerWH * 0.5, layerWH * 0.5) radius:radius startAngle:0 endAngle:M_PI * 2 clockwise:YES];//圓環(huán)遮罩CAShapeLayer *shapeLayer = [CAShapeLayer layer];shapeLayer.fillColor = [UIColor clearColor].CGColor;shapeLayer.strokeColor = [UIColor whiteColor].CGColor;shapeLayer.lineWidth = lineWidth;shapeLayer.strokeStart = 0;shapeLayer.strokeEnd = 1;shapeLayer.lineCap = kCALineCapRound;shapeLayer.lineDashPhase = 0.8;shapeLayer.path = bezierPath.CGPath;[_contentLayer setMask:shapeLayer];

效果如圖:

3.利用CAGradientLayer繪制漸變的顏色 由于CAGradientLayer是坐標(biāo)到坐標(biāo)之間的漸變,需要什么效果需要自己定制
漸變成坐標(biāo)如下:

NSMutableArray *colors = [NSMutableArray arrayWithObjects:(id)[UIColor yellowColor].CGColor,(id)[UIColor orangeColor].CGColor, nil];CAGradientLayer *gradientLayer = [CAGradientLayer layer];gradientLayer.shadowPath = bezierPath.CGPath;gradientLayer.frame = CGRectMake(0, 0, layerWH * 0.5, layerWH);gradientLayer.startPoint = CGPointMake(0, 0);gradientLayer.endPoint = CGPointMake(0, 1);[gradientLayer setColors:[NSArray arrayWithArray:colors]];NSMutableArray *colors1 = [NSMutableArray arrayWithObjects:(id)[UIColor redColor].CGColor,(id)[[UIColor orangeColor] CGColor], nil];CAGradientLayer *gradientLayer1 = [CAGradientLayer layer];gradientLayer1.shadowPath = bezierPath.CGPath;gradientLayer1.frame = CGRectMake(layerWH * 0.5, 0, layerWH * 0.5, layerWH);gradientLayer1.startPoint = CGPointMake(0, 0);gradientLayer1.endPoint = CGPointMake(0, 1);[gradientLayer1 setColors:[NSArray arrayWithArray:colors1]];[_contentLayer addSublayer:gradientLayer]; //設(shè)置顏色漸變[_contentLayer addSublayer:gradientLayer1];

效果如圖:

最后疊加的效果如圖:

轉(zhuǎn)載于:https://my.oschina.net/u/3729363/blog/1607540

總結(jié)

以上是生活随笔為你收集整理的iOS 做一个圆形渐变圆环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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