国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發教程之扇形動畫的實現

2019-10-21 18:45:58
字體:
來源:轉載
供稿:網友

前言

最近比較閑,正好利用這段時間把現在項目用的東西封裝一下,方便以后復用,當然好的東西還是要分享。一起學習,一起進步。

看圖片,很顯然這是一個ios/247597.html">扇形圖,相信大家對做扇形圖得心應手,可能對做扇形動畫有一定難度,不急,下面給出代碼和思路。

iOS開發,扇形圖動畫,ios,扇形圖,畫扇形

針對項目用的扇形動畫,在這個基礎上我做了一下封裝。

核心代碼如下:

-(instancetype)initWithCenter:(CGPoint)center radius:(CGFloat)radius bgColor:(UIColor *)bgColor repeatCount:(NSInteger)repeatCount { if (self = [super init]) {  //設置self的frame和center  self.backgroundColor = bgColor;  self.frame = CGRectMake(0, 0, radius * 2, radius * 2);  self.center = center;  _repeatCount = repeatCount;  //特別注意:貝塞爾曲線的radius必須為self高度的四分之一,CAShapeLayer的線寬必須為self高度的二分之一  UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(radius, radius) radius:radius / 2 startAngle:-M_PI/2 endAngle:M_PI *3 / 2 clockwise:YES];  CAShapeLayer *maskLayer = [CAShapeLayer layer];  maskLayer.path = path.CGPath;  maskLayer.fillColor = [UIColor clearColor].CGColor;  maskLayer.strokeColor = bgColor.CGColor;  maskLayer.lineWidth = radius; //等于半徑的2倍,以圓的邊緣為中心,向圓內部伸展一個半徑,向外伸展一個半徑,所以看上去以為圓的半徑是self高度的一半。  self.layer.mask = maskLayer;  _maskLayer = maskLayer; } return self;}-(void)startAnimaiton { //開始執行扇形動畫 CABasicAnimation *strokeEndAni = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; strokeEndAni.fromValue = @0; strokeEndAni.toValue = @1; strokeEndAni.duration = 1; //重復次數 strokeEndAni.repeatCount = _repeatCount; [_maskLayer addAnimation:strokeEndAni forKey:@"ani"];}

思路

可以讓fillcolor 為clearcolor 讓linewidth充滿整個圓,然后讓strokeend執行動畫,從而實現扇形動畫。

下載地址:源碼下載 | 本地下載

調用方法很簡單:直接看API

/**初始化對象@param center 中心@param radius self寬度的一半@param bgColor 背景色@param repeatCount 動畫重復次數@return self*/-(instancetype)initWithCenter:(CGPoint)center radius:(CGFloat)radius bgColor:(UIColor *)bgColor repeatCount:(NSInteger)repeatCount;-(void)startAnimaiton;-(void)puaseAnimation;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萨嘎县| 库尔勒市| 蒲城县| 哈密市| 类乌齐县| 南宫市| 家居| 赤水市| 通城县| 寿宁县| 阳城县| 西和县| 富锦市| 平果县| 中超| 南安市| 漳平市| 石泉县| 策勒县| 灵石县| 内丘县| 礼泉县| 五原县| 容城县| 施秉县| 遂平县| 洮南市| 永定县| 忻州市| 文山县| 蒙城县| 司法| 普安县| 娱乐| 台安县| 岳池县| 两当县| 浦北县| 固始县| 外汇| 织金县|