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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
