时钟

分享一下时钟代码:

- (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);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值