類似微信朋友圈加載視頻的扇形動畫

用到的類及其簡單的解釋:

1、UIBezierPath:使用此類可以定義簡單的形狀介时,如橢圓或者矩形隙畜,或者有多個直線和曲線段組成的形狀

2、CAShapeLayer:繼承自CALayer鹰服,因此,可使用CALayer的所有屬性杜恰。但是获诈,CAShapeLayer需要和貝塞爾曲線配合使用才有意義仍源。

3、CABasicAnimation:使用方式就是基本的關(guān)鍵幀動畫舔涎。所謂關(guān)鍵幀動畫笼踩,就是將Layer的屬性作為KeyPath來注冊,指定動畫的起始幀和結(jié)束幀亡嫌,然后自動計(jì)算和實(shí)現(xiàn)中間的過渡動畫的一種動畫方式嚎于。

4、CATransaction:CATransaction的作用是保證多個“Animatable”的變化同時進(jìn)行挟冠。也就是說CALayer的屬性修改需要依賴CATransaction于购。

扇形代碼:


- (void)createSectorView{

  UIView *bgView = [[UIView alloc]initWithFrame:self.bounds];
  bgView.backgroundColor = [UIColor colorWithRed:255 green:255 blue:255   alpha:0.4];
  [self addSubview:bgView];
  CGFloat width = self.frame.size.width;
  CGFloat height = self.frame.size.height;
  CGFloat centerX = width / 2;
  CGFloat centerY = height / 2;

  UIBezierPath *bezierPath = [UIBezierPath    bezierPathWithArcCenter:CGPointMake(centerX, centerY) radius:width / 4 startAngle:(CGFloat)(-M_PI / 2) endAngle:(CGFloat)(3 * M_PI / 2) clockwise:YES];

  _shapeLayer = [CAShapeLayer layer];
  [bgView.layer addSublayer:_shapeLayer];
  _shapeLayer.fillColor = [UIColor clearColor].CGColor;
  _shapeLayer.strokeColor = [UIColor colorWithRed:255 green:255 blue:255   alpha:0.6].CGColor;
  _shapeLayer.lineWidth = width / 2.0;
  _shapeLayer.path = bezierPath.CGPath;
  bgView.layer.mask = _shapeLayer;

}

如果你根據(jù)下載的進(jìn)度來控制動畫,方法如下:


- (void)startAnimationWithProgress:(CGFloat)progress {

  [CATransaction begin];
  [CATransaction setAnimationDuration:0.1];
  [CATransaction setCompletionBlock:^{
  }];
  [self.shapeLayer setStrokeEnd:progress];
  [CATransaction commit];

}

如果想直接是一個扇形的動畫:


- (void)startAnimation{

  CABasicAnimation *animation = [CABasicAnimation animation];
  animation.keyPath = @"strokeEnd";
  animation.duration = 2.0;
  animation.fromValue = @0.0;
  animation.toValue = @1.0;
  animation.timingFunction = [CAMediaTimingFunction    functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  animation.removedOnCompletion = NO;
  //animation.fillMode = kCAFillModeRemoved;
  //[_shapeLayer setStrokeEnd:toEnd];
  [animation setDelegate:self];
  [_shapeLayer addAnimation:animation forKey:@"strokeEndAnimation"];

}

效果圖如下:

效果.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末知染,一起剝皮案震驚了整個濱河市肋僧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌控淡,老刑警劉巖嫌吠,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掺炭,居然都是意外死亡辫诅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門涧狮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炕矮,“玉大人,你說我怎么就攤上這事者冤》羰樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵涉枫,是天一觀的道長钢颂。 經(jīng)常有香客問我,道長拜银,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任遭垛,我火速辦了婚禮尼桶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锯仪。我一直安慰自己泵督,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布庶喜。 她就那樣靜靜地躺著小腊,像睡著了一般救鲤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秩冈,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天本缠,我揣著相機(jī)與錄音,去河邊找鬼入问。 笑死丹锹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芬失。 我是一名探鬼主播楣黍,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棱烂!你這毒婦竟也來了租漂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤颊糜,失蹤者是張志新(化名)和其女友劉穎哩治,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芭析,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锚扎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馁启。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驾孔。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惯疙,靈堂內(nèi)的尸體忽然破棺而出翠勉,到底是詐尸還是另有隱情,我是刑警寧澤霉颠,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布对碌,位于F島的核電站,受9級特大地震影響蒿偎,放射性物質(zhì)發(fā)生泄漏朽们。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一诉位、第九天 我趴在偏房一處隱蔽的房頂上張望骑脱。 院中可真熱鬧,春花似錦苍糠、人聲如沸叁丧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拥娄。三九已至蚊锹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稚瘾,已是汗流浹背牡昆。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孟抗,地道東北人迁杨。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像凄硼,于是被迫代替她去往敵國和親铅协。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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

  • 在iOS中隨處都可以看到絢麗的動畫效果摊沉,實(shí)現(xiàn)這些動畫的過程并不復(fù)雜狐史,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,094評論 5 13
  • 在iOS中隨處都可以看到絢麗的動畫效果说墨,實(shí)現(xiàn)這些動畫的過程并不復(fù)雜骏全,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,465評論 6 30
  • 目錄: 主要繪圖框架介紹 CALayer 繪圖 貝塞爾曲線-UIBezierPath CALayer子類 補(bǔ)充:i...
    Ryan___閱讀 1,658評論 1 9
  • 目錄 ** UIView 動畫 ** ** Core Animation ** ** FaceBook POP動畫...
    方向_4d0d閱讀 1,585評論 0 3
  • 書寫的很好尼斧,翻譯的也棒姜贡!感謝譯者,感謝感謝棺棵! iOS-Core-Animation-Advanced-Techni...
    錢噓噓閱讀 2,292評論 0 6