前言
我們?cè)谧远x進(jìn)度條的時(shí)候,會(huì)遇到各種各樣的樣式,有在視圖中加載的,也有放在外面的。通常這種時(shí)候有部分人會(huì)選擇用UIView的動(dòng)畫(huà)和定時(shí)器來(lái)完成這個(gè)操作,但是用這種方式難免會(huì)有卡頓,在這里小編推薦用CAAnimation這個(gè)類(lèi)來(lái)完成。分享一個(gè)小編自己集成的CAAnimation工具類(lèi)。

工具類(lèi)
雖然iOS支持混編,但是為了保證結(jié)構(gòu)的一致性,小編還是寫(xiě)了OC和Swift兩個(gè)版本的工具類(lèi)SKShadowBarLayer,看官們可以根據(jù)自己的需求,去下方地址下載相應(yīng)的版本。
使用方法
1.導(dǎo)入庫(kù)
#import "SKShadowBarLayer.h"
2.按照自己的需求設(shè)置相應(yīng)的參數(shù)
CGFloat width_Screen = [UIScreen mainScreen].bounds.size.width;
CGFloat height_Screen = [UIScreen mainScreen].bounds.size.height;
self.shadow = [SKShadowBarLayer new];
// 設(shè)置顏色
self.shadow.fillColor = [UIColor colorWithRed:25/255.0 green:25/255.0 blue:25/255.0 alpha:1.0].CGColor;
// 設(shè)置大小
[self.shadow setFrame:(CGRect){0, 0, width_Screen * 0.8, width_Screen * 0.8 / 32 * 15}];
// 設(shè)置透明度
self.shadow.opacity = 0.6;
[self.imageView.layer addSublayer:self.shadow];
self.layer = [SKShadowBarLayer new];
// 設(shè)置顏色
self.layer.fillColor = [UIColor redColor].CGColor;
self.layer.backgroundColor = [UIColor blackColor].CGColor;
// 設(shè)置大小
[self.layer setFrame:(CGRect){width_Screen * 0.1, height_Screen / 2.5, width_Screen * 0.8, 20}];
// 設(shè)置透明度
self.layer.opacity = 1;
[self.view.layer addSublayer:self.layer];
3.調(diào)用相關(guān)方法
- (IBAction)buttonAction:(UIButton *)sender {
switch (sender.tag) {
case 1:
[self.shadow beginAnimationWithDuration:30];
[self.layer beginAnimationWithDuration:30];
break;
case 2:
[self.shadow pauseAnimation];
[self.layer pauseAnimation];
break;
case 3:
[self.shadow resumeAnimation];
[self.layer resumeAnimation];
break;
case 4:
[self.shadow restartAnimationWithDuration:30 progress:0];
[self.layer restartAnimationWithDuration:30 progress:0];
break;
default:
break;
}
}
4.若要知道狀態(tài),可以綁定代理SKShadowBarLayerDelegate
#pragma mark delegate
- (void)animationDidStart {
NSLog(@"開(kāi)始");
}
- (void)animationDidStop {
NSLog(@"停止");
}
- (void)animationDidComplete {
NSLog(@"完成");
}
希望這篇文章對(duì)各位看官有所幫助,可在上方地址下載Demo.