使用cadisplaylink寫秒錶
效果:
原始碼:stopwatch.h 與 stopwatch.m
//
// stopwatch.h
// showtime
//// created by youxianming on 14-10-16.
//#import @protocol stopwatchdelegate - (void)stopwatchdate:(nsdate *)date;
@end
// 說明:此秒錶類是基於cadisplaylink所寫,每一幀重新整理一次
@inte***ce stopwatch : nsobject
@property (nonatomic, assign) iddelegate;
- (void)start; // 開始
- (void)stop; // 停止
- (void)reset; // 復位
- (nsdate *)gaindate; // 獲取時間(只有在start的時候獲取時間才有意義,stop之後返回值為0)
@end
//
// stopwatch.m
// showtime
//// created by youxianming on 14-10-16.
//#import "stopwatch.h"
@inte***ce stopwatch ()
@property (nonatomic, strong) cadisplaylink *countdowntimer;
@property (nonatomic, strong) nsdate *startdate;
@property (nonatomic, strong) nsdate *pauseddate;
@property (nonatomic, assign) bool startflag;
@end
@implementation stopwatch
- (void)start
if (_countdowntimer == nil)
if(_pauseddate != nil)
_countdowntimer = [cadisplaylink displaylinkwithtarget:self selector:@selector(timerrunevent)];
_countdowntimer.frameinterval = 1;
[_countdowntimer addtorunloop:[nsrunloop currentrunloop] formode:nsrunloopcommonmodes];
}}- (void)stop
}- (void)reset
}- (nsdate *)gaindate else
}- (void)timerrunevent
}- (void)dealloc
@end
注意:富文字顯示的秒錶並不是這個類的功能而已:) 使用CADisplayLink實現果凍效果動畫
cadisplaylink是什麼 比起nstimer,cadisplaylink可以確保系統渲染每一幀的時候我們的方法都被呼叫,從而保證了動畫的流暢性。demo 我們希望在animate乙個view的時候給它加上果凍效果 我們會把所有的邏輯都封裝到乙個blockview裡,在這個view裡首先申明乙...
Swift3 CADisplayLink簡單用法
1 定義屬性 var displaylinktimer cadisplaylink?nil 2 init displaylinktimer cadisplaylink target self,selector selector self.handlepalettedata displaylinkti...
CADisplayLink定時器(平滑)
1.建立定時器 cadisplaylink link cadisplaylink displaylinkwithtatget self selector selector changy 要想讓cadisplaylink工作,必須得把它新增到主執行迴圈中 每一次螢幕重新整理的時候就會呼叫指定的方法 螢...