iOS自定義進(jìn)度條

前言

我們?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)的版本。

工具類(lèi)下載地址

使用方法

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.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容