当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS实现简易钟表

iOS实现简易钟表

2020年06月23日  | 移动技术网IT编程  | 我要评论

舒畅泳装,惊门 笔趣阁,纯阳真仙5200

本文实例为大家分享了ios实现简易钟表的具体代码,供大家参考,具体内容如下

效果图:

注意:表盘是一个uiimageview控件,设置image为表盘图片

核心代码:

//
// viewcontroller.m
// 时钟
//
// created by llkj on 2017/8/29.
// copyright © 2017年 laynecheung. all rights reserved.
//

#import "viewcontroller.h"

//每一秒旋转多少度
#define perseca 6
//每一分旋转多少度
#define permina 6
//每一小时旋转多少度
#define perhoura 30

//每一分时针旋转的度数
#define perminhour 0.5
//角度转弧度
#define angle2rad(angle) ((angle) / 180.0 * m_pi)
@interface viewcontroller ()

@property (weak, nonatomic) iboutlet uiimageview *clockview;
@property (nonatomic, weak) calayer *secl;
@property (nonatomic, weak) calayer *minl;
@property (nonatomic, weak) calayer *hourl;
@end

@implementation viewcontroller

- (void)viewdidload {
 [super viewdidload];

 [self sethour];
 [self setmin];
 [self setsec];

 [nstimer scheduledtimerwithtimeinterval:1 target:self selector:@selector(timechange) userinfo:nil repeats:yes];
 [self timechange];
}

- (void)timechange{

 //获取当前秒
 nscalendar *cal = [nscalendar currentcalendar];
 nsdatecomponents *cmp = [cal components:nscalendarunitsecond | nscalendarunitminute | nscalendarunithour fromdate:[nsdate date]];
 nsinteger cursec = cmp.second + 1;
 nsinteger curmin = cmp.minute;
 nsinteger curhour = cmp.hour;

 //秒针开始旋转
 //计算秒针当前旋转的角度
 // angle = 当前多少秒 * 每一秒旋转多少度
 cgfloat seca = cursec * perseca;
 //旋转方向是z轴
 self.secl.transform = catransform3dmakerotation(angle2rad(seca), 0, 0, 1);


 //分针开始旋转
 //计算分针当前旋转的角度
 // angle = 当前多少分 * 每一分旋转多少度
 cgfloat mina = curmin * permina;
 self.minl.transform = catransform3dmakerotation(angle2rad(mina), 0, 0, 1);


 //时针开始旋转
 //计算时针当前旋转的角度
 // angle = 当前多少时 * 每一小时旋转多少度
 cgfloat houra = curhour * perhoura + curmin * perminhour;

 self.hourl.transform = catransform3dmakerotation(angle2rad(houra), 0, 0, 1);
}
//添加秒针
- (void)setsec{

 calayer *secl = [calayer layer];
 secl.bounds = cgrectmake(0, 0, 1, 80);
 secl.backgroundcolor = [uicolor redcolor].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.layer addsublayer:secl];
 self.secl = secl;

}

//添加分针
- (void)setmin{

 calayer *minl = [calayer layer];
 minl.bounds = cgrectmake(0, 0, 3, 70);
 minl.cornerradius = 1.5;
 minl.backgroundcolor = [uicolor blackcolor].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.layer addsublayer:minl];
 self.minl = minl;

}

//添加时针
- (void)sethour{

 calayer *hourl = [calayer layer];
 hourl.bounds = cgrectmake(0, 0, 3, 60);
 hourl.backgroundcolor = [uicolor blackcolor].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.layer addsublayer:hourl];
 self.hourl = hourl;

}
- (void)didreceivememorywarning {
 [super didreceivememorywarning];
 // dispose of any resources that can be recreated.
}


@end

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • ios uicollectionview实现横向滚动

    现在使用卡片效果的app很多,之前公司让实现一种卡片效果,就写了一篇关于实现卡片的文章。文章最后附有demo实现上我选择了使用uicollectionview ... [阅读全文]
  • iOS UICollectionView实现横向滑动

    本文实例为大家分享了ios uicollectionview实现横向滑动的具体代码,供大家参考,具体内容如下uicollectionview的横向滚动,目前我使... [阅读全文]
  • iOS13适配深色模式(Dark Mode)的实现

    iOS13适配深色模式(Dark Mode)的实现

    好像大概也许是一年前, mac os系统发布了深色模式外观, 看着挺刺激, 时至今日用着也还挺爽的终于, 随着iphone11等新手机的发售, ios 13系统... [阅读全文]
  • ios 使用xcode11 新建项目工程的步骤详解

    ios 使用xcode11 新建项目工程的步骤详解

    xcode11新建项目工程,新增了scenedelegate这个类,转而将原appdelegate负责的对ui生命周期的处理担子接了过来。故此可以理解为:ios... [阅读全文]
  • iOS实现转盘效果

    本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现... [阅读全文]
  • iOS开发实现转盘功能

    本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#... [阅读全文]
  • iOS实现轮盘动态效果

    本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想... [阅读全文]
  • iOS实现九宫格连线手势解锁

    本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手... [阅读全文]
  • iOS实现卡片堆叠效果

    本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material... [阅读全文]
  • iOS利用余弦函数实现卡片浏览工具

    iOS利用余弦函数实现卡片浏览工具

    本文实例为大家分享了ios利用余弦函数实现卡片浏览工具的具体代码,供大家参考,具体内容如下一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间... [阅读全文]
验证码:
移动技术网