亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS如何實現扇形動畫

發布時間:2021-08-04 11:28:40 來源:億速云 閱讀:282 作者:小新 欄目:移動開發

小編給大家分享一下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;

以上是“iOS如何實現扇形動畫”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

渝中区| 靖州| 封开县| 西昌市| 桂林市| 蓝田县| 利川市| 阿城市| 同德县| 进贤县| 大埔区| 衡阳市| 维西| 九江市| 玛曲县| 库伦旗| 白沙| 化德县| 邵武市| 赤水市| 洛扎县| 靖宇县| 金门县| 信阳市| 余庆县| 永德县| 临沧市| 安阳县| 遂平县| 分宜县| 孙吴县| 青浦区| 磐石市| 德清县| 家居| 东安县| 浙江省| 双柏县| 即墨市| 盐源县| 涞源县|