/*
drawRect:方法不能由我们自己手动调用,只能由系统来调用。
drawRect:调用的时机:当第一次显示或者一个重绘事件发生时调用。
setNeedsDisplay方法:重新绘制,调用这个方法就会通知自定义的view重新绘制画面,调用drawRect:。
提示:当一个view从xib或storyboard创建出来时,会调用awakefromnib方法。
*/
- (void)drawRect:(CGRect)rect
{
CGContextRef ref =UIGraphicsGetCurrentContext();
CGContextAddArc(ref, 100, 100, self.radius,0, 2*M_PI,0);
[[UIColorblueColor] set];
// 渲染
CGContextFillPath(ref);
}
//NSTimer一般用于定时的更新一些非界面上的数据,告诉多久调用一次
//使用定时器,使用该定时器会出现卡顿的现象
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateImage) userInfo:nil repeats:YES];
//取消定时器
[timerinvalidate];
timer =nil;
//关闭定时器
[timer setFireDate:[NSDatedistantFuture]];
//开启定时器
[timer setFireDate:[NSDatedistantPast]];
// CADisplayLink刷帧,默认每秒刷新60次
//该定时器创建之后,默认是不会执行的,需要把它加载到消息循环中
//要使用CADisplayLink,需要加入QuartzCore.framework及#import <QuartzCore/CADisplayLink.h>
CADisplayLink *display= [CADisplayLink displayLinkWithTarget:self selector:@selector(updateImage)];
[display addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
// 失效
[display invalidate];
display = nil;