- (void)viewDidLoad {
[super viewDidLoad];
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"biao1.png" ofType:nil]];
UIImageView *bgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, image.size.width/3, image.size.height/3)];
bgView.center = self.view.center;
bgView.image = image;
[self.view addSubview:bgView];
[self pointLayer];
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(fireTime) ];
[link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
// [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(fireTime) userInfo:nil repeats:YES];
}
- (void)pointLayer
{
UIImage *image= [UIImage imageNamed:@"指针.png"];
// 分
mLayer = [[CALayer alloc]init];
mLayer.bounds = CGRectMake(0, 0, image.size.width/5, image.size.height/5);
mLayer.position = self.view.center;
mLayer.contents = (id)image.CGImage;
mLayer.anchorPoint = CGPointMake(0.5, 0.64);
[self.view.layer addSublayer:mLayer];
// 时
hLayer = [[CALayer alloc]init];
hLayer.bounds = CGRectMake(0, 0, image.size.width/6, image.size.height/6);
hLayer.position = self.view.center;
hLayer.contents = (id)image.CGImage;
hLayer.anchorPoint = CGPointMake(0.5, 0.64);
[self.view.layer addSublayer:hLayer];
// 秒
sLayer = [[CALayer alloc]init];
sLayer.bounds = CGRectMake(0, 0, image.size.width/4, image.size.height/4);
sLayer.position = self.view.center;
sLayer.contents = (id)image.CGImage;
sLayer.anchorPoint = CGPointMake(0.5, 0.64);
[self.view.layer addSublayer:sLayer];
}
- (void)fireTime
{
CGFloat sAngle = M_PI*2/60;
CGFloat mAngle = M_PI*2/60;
CGFloat hAngle = M_PI*2/12;
NSCalendar *calender = [NSCalendar currentCalendar];
// 获得当前的时间 小时
// - (NSInteger)component:(NSCalendarUnit)unit fromDate:(NSDate *)date 从日历里面 获得某个日期 某个组件
NSInteger h = [calender component:NSCalendarUnitHour fromDate:[NSDate date]];
NSInteger m = [calender component:NSCalendarUnitMinute fromDate:[NSDate date]];
NSInteger s = [calender component:NSCalendarUnitSecond fromDate:[NSDate date]];
sLayer.transform = CATransform3DMakeRotation(sAngle*s, 0, 0, 1);
mLayer.transform = CATransform3DMakeRotation(mAngle*m + sAngle*s/60, 0, 0, 1);
hLayer.transform = CATransform3DMakeRotation(hAngle*h + mAngle*m/12, 0, 0, 1);
}