用代码实现时钟功能
来源:互联网 发布:视频同步软件 编辑:程序博客网 时间:2024/05/20 16:42
// 每一秒旋转的角度
#define perSec 6
// 每一分钟旋转的角度
#define perMin 6
// 每一个小时旋转的角度
#define perHour 30
// 每一分钟所对应时针旋转的角度
#define perMin2hourAngle 0.5
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutletUIImageView *myView;
@property(nonatomic,strong)CALayer *secLayer;
@property(nonatomic,strong)CALayer *hourLayer;
@property(nonatomic,strong)CALayer *minLayer;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
[self setUpSec];
[self setUpMin];
[selfsetUpHour];
// 创建一个定时器
[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(timeChange)userInfo:nilrepeats:YES];
[selftimeChange];
}
- (void)timeChange
{
// 获取当前日历
NSCalendar *calendar = [NSCalendarcurrentCalendar];
// 获取当前日期单元
NSDateComponents *cmp = [calendarcomponents:NSCalendarUnitHour|NSCalendarUnitSecond|NSCalendarUnitMinutefromDate:[NSDatedate]];
// 获取当前日期中的当前秒数
NSInteger sec = cmp.second;
// 获取当前日期中的分钟数
NSInteger min = cmp.minute;
// 获取当前日期中的小时数
NSInteger hour = cmp.hour;
// 计算秒针走过的弧度
CGFloat secAngle = perSec * sec /180.0 *M_PI;
// 计算分针走过的弧度
CGFloat minAngle = perMin * min /180.0 *M_PI;
// 计算时针走过的弧度
CGFloat hourAngle = (perHour * hour+perMin2hourAngle * min) /180.0 *M_PI ;
self.secLayer.transform =CATransform3DMakeRotation(secAngle, 0, 0, 1);
self.minLayer.transform =CATransform3DMakeRotation(minAngle, 0, 0, 1);
self.hourLayer.transform =CATransform3DMakeRotation(hourAngle, 0, 0, 1);
}
- (void)setUpSec
{
// 创建一个非根图层(秒针)
CALayer *seclayer = [CALayerlayer];
self.secLayer = seclayer;
seclayer.backgroundColor = [UIColorredColor].CGColor;
seclayer.bounds = CGRectMake(0, 0, 2, 80);
seclayer.anchorPoint = CGPointMake(0.5, 1);
seclayer.position =CGPointMake(self.myView.bounds.size.width *0.5, self.myView.bounds.size.height *0.5);
// 把图层添加到根图层中
[self.myView.layeraddSublayer:seclayer];
}
- (void)setUpMin
{
// 创建一个非根图层(秒针)
CALayer *minlayer = [CALayerlayer];
self.minLayer = minlayer;
minlayer.backgroundColor = [UIColorblackColor].CGColor;
minlayer.bounds = CGRectMake(0, 0, 3, 70);
minlayer.anchorPoint = CGPointMake(0.5, 1);
minlayer.position =CGPointMake(self.myView.bounds.size.width *0.5, self.myView.bounds.size.height *0.5);
// 设置时针的圆角半径
minlayer.cornerRadius = 1;
// 把图层添加到根图层中
[self.myView.layeraddSublayer:minlayer];
}
- (void)setUpHour
{
// 创建一个非根图层(秒针)
CALayer *hourlayer = [CALayerlayer];
self.hourLayer = hourlayer;
hourlayer.backgroundColor = [UIColorblackColor].CGColor;
hourlayer.bounds = CGRectMake(0, 0, 4, 60);
hourlayer.anchorPoint = CGPointMake(0.5, 1);
hourlayer.position =CGPointMake(self.myView.bounds.size.width *0.5, self.myView.bounds.size.height *0.5);
// 设置时针的圆角半径
hourlayer.cornerRadius = 2;
// 把图层添加到根图层中
[self.myView.layeraddSublayer:hourlayer];
}
@end
- 用代码实现时钟功能
- 用C#实现电子时钟功能
- 用定时器实现简单时钟功能
- STC89C52实现时钟功能
- JS实现时钟功能
- 用setInterval 功能实现数字时钟/实现全选与全不选
- 单片机时钟实现闹钟功能
- 【CSS3】纯CSS代码实现模拟时钟,+js对时功能。
- 网页时钟实现代码html5
- android studio tabhost基础 多功能时钟app 实现时钟功能
- ^_^ JS实现可爱的时钟功能
- js 实现日期和时钟功能
- 中断及定时器实现时钟功能
- javascript时间和日期,实现时钟功能
- 时钟三:用内部中断实现时钟
- C语言实现时钟设置代码详解
- 用哪些代码实现这些功能
- 用java实现病毒功能的代码
- PHP实现验证码功能
- 加油!
- iOS开发-UI控件:UICollectionView基础
- 图标旋转
- java基础学习总结——流
- 用代码实现时钟功能
- iOS开发-UI控件:iPhone iPad 各种控件默认高度
- QCA4010 AllJoyn编译
- LocationManager
- vim简单配置 缩进
- placement new 详解
- android-App Widget Host
- 代数-函数
- 拖动手势实现代码