iOS实现简易钟表
本文实例为大家分享了iOS实现简易钟表的具体代码,供大家参考,具体内容如下
效果图:
注意:表盘是一个UIImageView控件,设置image为表盘图片
核心代码:
// //ViewController.m //时钟 // //Createdbyllkjon2017/8/29. //Copyright©2017年LayneCheung.Allrightsreserved. // #import"ViewController.h" //每一秒旋转多少度 #defineperSecA6 //每一分旋转多少度 #defineperMinA6 //每一小时旋转多少度 #defineperHourA30 //每一分时针旋转的度数 #defineperMinHour0.5 //角度转弧度 #defineangle2Rad(angle)((angle)/180.0*M_PI) @interfaceViewController() @property(weak,nonatomic)IBOutletUIImageView*clockView; @property(nonatomic,weak)CALayer*secL; @property(nonatomic,weak)CALayer*minL; @property(nonatomic,weak)CALayer*hourL; @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; [selfsetHour]; [selfsetMin]; [selfsetSec]; [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(timeChange)userInfo:nilrepeats:YES]; [selftimeChange]; } -(void)timeChange{ //获取当前秒 NSCalendar*cal=[NSCalendarcurrentCalendar]; NSDateComponents*cmp=[calcomponents:NSCalendarUnitSecond|NSCalendarUnitMinute|NSCalendarUnitHourfromDate:[NSDatedate]]; NSIntegercurSec=cmp.second+1; NSIntegercurMin=cmp.minute; NSIntegercurHour=cmp.hour; //秒针开始旋转 //计算秒针当前旋转的角度 //angle=当前多少秒*每一秒旋转多少度 CGFloatsecA=curSec*perSecA; //旋转方向是Z轴 self.secL.transform=CATransform3DMakeRotation(angle2Rad(secA),0,0,1); //分针开始旋转 //计算分针当前旋转的角度 //angle=当前多少分*每一分旋转多少度 CGFloatminA=curMin*perMinA; self.minL.transform=CATransform3DMakeRotation(angle2Rad(minA),0,0,1); //时针开始旋转 //计算时针当前旋转的角度 //angle=当前多少时*每一小时旋转多少度 CGFloathourA=curHour*perHourA+curMin*perMinHour; self.hourL.transform=CATransform3DMakeRotation(angle2Rad(hourA),0,0,1); } //添加秒针 -(void)setSec{ CALayer*secL=[CALayerlayer]; secL.bounds=CGRectMake(0,0,1,80); secL.backgroundColor=[UIColorredColor].CGColor; //绕着锚点旋转 secL.anchorPoint=CGPointMake(0.5,1); secL.position=CGPointMake(self.clockView.bounds.size.width*0.5,self.clockView.bounds.size.height*0.5); [self.clockView.layeraddSublayer:secL]; self.secL=secL; } //添加分针 -(void)setMin{ CALayer*minL=[CALayerlayer]; minL.bounds=CGRectMake(0,0,3,70); minL.cornerRadius=1.5; minL.backgroundColor=[UIColorblackColor].CGColor; minL.anchorPoint=CGPointMake(0.5,1); minL.position=CGPointMake(self.clockView.bounds.size.width*0.5,self.clockView.bounds.size.height*0.5); [self.clockView.layeraddSublayer:minL]; self.minL=minL; } //添加时针 -(void)setHour{ CALayer*hourL=[CALayerlayer]; hourL.bounds=CGRectMake(0,0,3,60); hourL.backgroundColor=[UIColorblackColor].CGColor; hourL.anchorPoint=CGPointMake(0.5,1); hourL.position=CGPointMake(self.clockView.bounds.size.width*0.5,self.clockView.bounds.size.height*0.5); [self.clockView.layeraddSublayer:hourL]; self.hourL=hourL; } -(void)didReceiveMemoryWarning{ [superdidReceiveMemoryWarning]; //Disposeofanyresourcesthatcanberecreated. } @end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。