IOS开发之——时钟(94)

#define perSecendA 6 //360/60

//每分钟分针转6度

#define perMinuteA 6 //360/60

//每小时时针转多少度

#define perHourA 30 //360/12

//每分钟时针转6度

#define perMinuteHourA 0.5 //30/60

#define angle2radian(x) ((x)/180.0 * M_PI)

@interface ViewController ()

{

CALayer *_second;

CALayer *_minute;

CALayer *_hour;

}

@property (weak, nonatomic) IBOutlet UIImageView *clockView;

@end

@implementation ViewController

  • (void)viewDidLoad {

[super viewDidLoad];

//1-添加秒针

[self addSecond];

//2-添加分针

[self addMinute];

//3-添加时针

[self addHour];

//创建定时器

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(update) userInfo:nil repeats:YES];

[self update];

}

//添加时针

-(void)addHour

{

CGFloat imageW=_clockView.bounds.size.width;

CGFloat imageH=_clockView.bounds.size.height;

//1.添加分针

CALayer *hour=[CALayer layer];

//2.添加锚点

hour.anchorPoint=CGPointMake(0.5, 1);

//3.设置位置

hour.position=CGPointMake(imageW0.5, imageH0.5);

//4.设置尺寸

hour.bounds=CGRectMake(0, 0, 4, imageH*0.5-50);

//5.设置背景色

hour.backgroundColor=[UIColor blackColor].CGColor;

hour.cornerRadius=5;

//6.添加到图层上

[_clockView.layer addSublayer:hour];

_hour=hour;

}

//添加分针

-(void)addMinute

{

CGFloat imageW=_clockView.bounds.size.width;

CGFloat imageH=_clockView.bounds.size.height;

//1.添加分针

CALayer *minute=[CALayer layer];

//2.添加锚点

minute.anchorPoint=CGPointMake(0.5, 1);

//3.设置位置

minute.position=CGPointMake(imageW0.5, imageH0.5);

//4.设置尺寸

minute.bounds=CGRectMake(0, 0, 2, imageH*0.5-30);

//5.设置背景色

minute.backgroundColor=[UIColor blackColor].CGColor;

//6.添加到图层上

[_clockView.layer addSublayer:minute];

_minute=minute;

}

//添加秒针

-(void)addSecond

{

CGFloat imageW=_clockView.bounds.size.width;

CGFloat imageH=_clockView.bounds.size.height;

//1.添加秒针

CALayer *second=[CALayer layer];

//2.添加锚点

second.anchorPoint=CGPointMake(0.5, 1);

//3.设置位置

second.position=CGPointMake(imageW0.5, imageH0.5);

//4.设置尺寸

second.bounds=CGRectMake(0, 0, 1, imageH*0.5-20);

//5.设置背景色

second.backgroundColor=[UIColor redColor].CGColor;

//6.添加到图层上

[_clockView.layer addSublayer:second];

_second=second;

}

-(void)update

{

//获取秒数

//获取日历对象

NSCalendar *calendar=[NSCalendar currentCalendar];

NSDateComponents *compoents=[calendar components:NSCalendarUnitSecond|NSCalendarUnitMinute|NSCalendarUnitHour fromDate:[NSDate date]];

//获取秒数

CGFloat sec=compoents.second;

//获取分钟

CGFloat minute=compoents.minute;

//获取小时

CGFloat hour=compoents.hour;

//算出秒针旋转多少

CGFloat secondA=sec*perSecendA;

//算出分针旋转多少

CGFloat minuteA=minute*perMinuteA;

//算出时针旋转多少

最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
,请给我留言。一定会认真查询,修正不足。谢谢。

[外链图片转存中…(img-xIp2F6wQ-1715657158978)]

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值