利用CoreAnimation實現乙個時間的進度條

2021-08-07 16:20:31 字數 2254 閱讀 1234

那麼接下來就是如何用coreanimation實現乙個進度條控制項了。

首先呢,讓我們建立乙個繼承自cashapelayer的wkprogressbarlayer。

wkprogressbarlayer預設自身的bounds就是整個進度條的大小。

@inte***ce wkprogressbarlayer : cashapelayer

@end

為了方便外部呼叫,首先在wkprogressbarlayer.h中定義列舉來表明動畫的四個狀態

typedef ns_enum(nsinteger, wkanimationstatus) ;
接下來,定義外部呼叫的動畫介面

@inte***ce wkprogressbarlayer : cashapelayer

@property (nonatomic, assign, readonly) wkanimationstatus animatingstatus;//狀態

/** 開始動畫

@param duration 動畫最大時長

*/- (void)beginanimationwithduration:(cgfloat)duration;

/** 暫停

*/- (void)pauseanimation;

/** 恢復

*/- (void)resumeanimation;

/** 重新開始動畫

@param progress 從哪個進度開始

@param duration 動畫最大時長

*/- (void)restartanimationwithprogress:(cgfloat)progress duration:(nstimeinterval)duration;

@end

然後,我們在.m實現核心的動畫開始方法startanimtionwithbeginprogress:duration:,詳細解釋見**

- (void)startanimtionwithbeginprogress:(cgfloat)beginprogress duration:(nstimeinterval)duration

然後呢,需要在動畫的delegate與暫停、恢復動畫的方法中分別修改動畫的狀態

- (void)pauseanimation

- (void)resumeanimation

#pragma mark - caanimationdelegate

/* called when the animation begins its active duration. */

- (void)animationdidstart:(caanimation *)anim

}- (void)animationdidstop:(caanimation *)anim finished:(bool)flag

}

至此,進度條layer就完成了,現在建立乙個控制器來做測試

首先在storyboard擺上兩個按鈕,分別是開始與重置動畫(介面搭建很簡單,詳情見demo)

然後在viewdidload中新增progresslayer

- (void)viewdidload
接下來,就是動畫開始與重置響應

- (ibaction)startorpauseaction:(uibutton *)sender 

break;

case wkanimationstatusanimating:

break;

case wkanimationstatuspause:

break;

case wkanimationstatuscomplete:

break;

default:

break;

}sender.selected = !sender.selected;

}- (ibaction)resetaction:(uibutton *)sender

以上就是**主體了,接下來,讓我們看看效果

利用CoreAnimation實現乙個時間的進度條

那麼接下來就是如何用coreanimation實現乙個進度條控制項了。首先呢,讓我們建立乙個繼承自cashapelayer的wkprogressbarlayer。wkprogressbarlayer預設自身的bounds就是整個進度條的大小。inte ce wkprogressbarlayer ca...

Core Animation動畫概述

core animation動畫概述 1 概述 在ios中,圖形可分為以下幾個層次 越上層,封裝程度越高,動畫實現越簡潔越簡單,但是自由度越低。本文著重介紹core animation層的動畫實現方案。2 動畫概念類 在ios中,展示動畫可以模擬於顯示生活中的 拍電影 拍電影有三大要素 演員 劇本 ...

IOS動畫Core Animation詳解

在ios中如果使用普通的動畫則可以使用uikit提供的動畫方式來實現,如果想實現更複雜的效果,則需要使用core animation了。下面詳解各種型別動畫的使用方式 plain view plain copy void animationofuikit plain view plain copy ...