钟表

作者: Areyouhere | 来源:发表于2017-02-15 10:15 被阅读0次
#import "WatchViewController.h"

//钟表图片的高
#define kWatchH self.watchImage.bounds.size.height
//钟表图片的宽
#define kWatchW self.watchImage.bounds.size.width
//秒针每秒转多少度
#define angle_second 6
//分针每分钟转多少度
#define angle_minute 6
//时针每小时转多少度
#define angle_hour 30
//时针每分钟转多少度
#define anglem_minute_hour 0.5

@interface WatchViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *watchImage;
@property (nonatomic ,retain) NSTimer *timer;
@property (nonatomic ,retain) CALayer *secondL;
@property (nonatomic ,retain) CALayer *minuteL;
@property (nonatomic ,retain) CALayer *hourL;
@end

@implementation WatchViewController
- (void)viewDidDisappear:(BOOL)animated
{
    [_timer invalidate];
    _timer = nil;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self setUpHourLayer];
    [self setUpMinuteLayer];
    [self setUpSecondLayer];
    [self timeChange];
    _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
}
- (void)timeChange
{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    NSDateComponents *comp = [calendar components:NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour fromDate:[NSDate date]];
    
    CGFloat com_second = comp.second;
    CGFloat com_minute = comp.minute;
    CGFloat com_hour = comp.hour;
    CGFloat secondA = (angle_second * com_second)/180 *M_PI;
    CGFloat minuteA = (angle_minute * com_minute)/180 *M_PI;
    CGFloat hourA   = ((angle_hour   * com_hour)+com_minute*anglem_minute_hour)/180 *M_PI;
    
    _secondL.transform = CATransform3DMakeRotation(secondA, 0, 0, 1);
    _minuteL.transform = CATransform3DMakeRotation(minuteA, 0, 0, 1);
    _hourL.transform = CATransform3DMakeRotation(hourA, 0, 0, 1);
}
#pragma mark 生成时针
- (void)setUpHourLayer
{
    CALayer *layer = [CALayer layer];
    
    layer.backgroundColor = [UIColor blackColor].CGColor;
    
    layer.anchorPoint = CGPointMake(0.5, 1);
    
    layer.position = CGPointMake(kWatchW * 0.5,kWatchH * 0.5 );
    
    layer.bounds = CGRectMake(0, 0, 4, kWatchH * 0.5 - 30);
    
    _hourL = layer;
    [_watchImage.layer addSublayer:_hourL];
}
#pragma mark 生成分针
- (void)setUpMinuteLayer
{
    CALayer *layer = [CALayer layer];
    
    layer.backgroundColor = [UIColor blackColor].CGColor;
    
    layer.anchorPoint = CGPointMake(0.5, 1);
    
    layer.position = CGPointMake(kWatchW * 0.5,kWatchH * 0.5 );
    
    layer.bounds = CGRectMake(0, 0, 4, kWatchH * 0.5);
    
    _minuteL = layer;
    [_watchImage.layer addSublayer:_minuteL];
}
#pragma mark 生成秒针
- (void)setUpSecondLayer
{
    CALayer *layer = [CALayer layer];
    
    layer.backgroundColor = [UIColor redColor].CGColor;
    
    layer.anchorPoint = CGPointMake(0.5, 1);
    
    layer.position = CGPointMake(kWatchW * 0.5,kWatchH * 0.5 );
    
    layer.bounds = CGRectMake(0, 0, 1, kWatchH * 0.5);
    
    _secondL = layer;
    [_watchImage.layer addSublayer:_secondL];
}

相关文章

  • 钟表

    你不紧不慢 不慌不忙 中规中矩的往前走 走啊,走啊 没有尽头 这多像一个人的头脑 在白天,没有休息的时候

  • 钟表

    日子走了 已有快有三个年头 钟表 却蜷缩在暗角 静止了 指针所指的方向 是清晨 也是傍晚 醒来 或是将要睡去 ...

  • 钟表

    一块钟表 秒针是你 时针是我 秒针不停转 时针怎么追

  • 钟表

    锈迹斑驳的栏门里 掩了芳华的怀表 拉着地球自转 追赶太阳的脚步 灼热逼退的方向 弯月削了尖牙 白墙上的大摆钟 左右...

  • 钟表

    卧室的墙上有一个钟表,这个钟表有着不锈钢的金属外圈,透明的玻璃盖子,黑色的刻度和黑色的指针,分针和时针不停的互相追...

  • 钟表

    我看到东墙上 那秒针震动却停滞的样子 就像年迈的老人 再迈不动一步 当我们度过这样那样的一生 我们该如何度过这最后...

  • 钟表

    我欲把钟表扛回家它却掉在了路上悲叹着这一滩液体感觉自己仿佛身在过去

  • 钟表

    看古老钟表略过的痕迹, 在一念之间忽而离去, 但愿此情有所延续, 却不知, 人生似戏, 终有结局。

  • 钟表

    钟表,你可不可以不转? 你转走了我的童年, 转得让爸爸妈妈对我更加严厉, 让我的童年只剩下回忆。...

  • 钟表

    没有虫鸣的夜里摩天轮开始缓缓转动 雨中她得到了解脱不再哭泣 她望着渐渐扭曲褪色的公园浅浅笑着 把钟表摔碎在倒流的时间里

网友评论

      本文标题:钟表

      本文链接:https://www.haomeiwen.com/subject/mvtqwttx.html