0125——时钟

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic,strong) CALayer *hourLayer;
@property (nonatomic,strong) CALayer *minLayer;
@property (nonatomic,strong) CALayer *secLayer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //创建时针,分针,秒针;
    self.hourLayer= [CALayer layer];
    _hourLayer.backgroundColor = [UIColor blackColor].CGColor;
    _hourLayer.bounds = CGRectMake(0, 0, 4, 40);
    _hourLayer.position = self.view.center;
    _hourLayer.anchorPoint = CGPointMake(0.5, 0.8);
    
    [self.view.layer addSublayer:_hourLayer];
    
    self.minLayer = [CALayer layer];
    _minLayer.backgroundColor = [UIColor blackColor].CGColor;
    _minLayer.bounds = CGRectMake(0,  0, 2, 70);
    _minLayer.position = self.view.center;
    _minLayer.anchorPoint = CGPointMake(0.5, 0.8);
    [self.view.layer addSublayer:_minLayer];
    
    self.secLayer = [CALayer layer];
    _secLayer.backgroundColor = [UIColor redColor].CGColor;
    _secLayer.bounds = CGRectMake(0, 0, 2, 90);
    _secLayer.position = self.view.center;
    _secLayer.anchorPoint = CGPointMake(0.5, 0.8);
    [self.view.layer addSublayer:_secLayer];
    
    //创建中心点
    CALayer *centerLayer = [CALayer layer];
    centerLayer.bounds = CGRectMake(0, 0 , 8, 8);
    centerLayer.cornerRadius = 4;
    centerLayer.backgroundColor = [UIColor blackColor].CGColor;
    centerLayer.position = self.view.center;
    [self.view.layer addSublayer:centerLayer];
    
    //获取当前时间
    NSDate *nowDate = [NSDate date];
    NSDateFormatter *formater = [NSDateFormatter new];
    formater.dateFormat  = @"K:m:s";
    NSString *dateString = [formater stringFromDate:nowDate];
    
    //对时间按照:进行分离
    NSArray *numsArray = [dateString componentsSeparatedByString:@":"];
    
    //取出数组中的数字,设置对应的时分秒针旋转度数
    int hour = [[numsArray objectAtIndex:0]intValue];
    int min = [[numsArray objectAtIndex:1]intValue];
    int sec = [[numsArray objectAtIndex:2]intValue];
    //时针
    _hourLayer.transform = CATransform3DRotate(_hourLayer.transform, (hour + min/60.0)*30.0/180.0*M_PI , 0, 0, 1);
    
    //分针
    _minLayer.transform = CATransform3DRotate(_minLayer.transform, (min + sec/60.0)*6.0/180.0*M_PI, 0, 0, 1);
    
    //秒针
    _secLayer.transform = CATransform3DRotate(_secLayer.transform, sec*6/180.0 *M_PI, 0, 0, 1);
    
    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(rotate) userInfo:nil repeats:YES];

}

 //旋转
-(void)rotate{
    _secLayer.transform = CATransform3DRotate(_secLayer.transform, 6/180.0 * M_PI, 0, 0, 1);
    _minLayer.transform = CATransform3DRotate(_minLayer.transform, (6/60.0)/180.0 *M_PI, 0, 0, 1);
    _hourLayer.transform  = CATransform3DRotate(_hourLayer.transform, (30/3600.0)/180.0 *M_PI, 0, 0, 1);
}

@end

时间: 2024-07-28 16:54:31

0125——时钟的相关文章

门控时钟-理论分析 ---- 转载

转载自:http://www.chipsbank.com/news_detail/newsId=123.html 门控的基本要求: 1. 所需要的沿(对于正沿触发的寄存器是正沿,对于负沿触发的寄存器是负沿)不增加,不减少: 1. 不会产生毛刺: 1. 使用后功耗要能够降低: 1. 最好面积还会减小. 1. 上升沿触发的门控时钟的结构研究:应用与上升沿触发的寄存器的门控. 1. 直接与门结构: 1. 高电平使能Latch + 与门结构: 1. 低电平使能Latch + 与门结构: 1. 波形研究:

【JAVA语言程序设计基础篇】--图形-- 三种时钟--增强对类的理解和应用

1.显示任意时间时钟 2.设置三个可见性属性 分别表示时针,分针,秒针的可见性 3.一个精细的时钟 主类:StillClock @SuppressWarnings("serial") class DetailedClock extends JPanel { private int hour; private int minute; private int second; protected int xCenter, yCenter; protected int clockRadius;

第三部分:S5PV210_时钟部分_1

时钟部分 (1)时钟域 S5PV210一共有三个时钟域:MSYS,DSYS,PSYS MSYS:(main system)主时钟域,包括CPU,DDR内存条,IROM和IRAM等 DSYS:(display system)显示时钟域,就是一般的和视频有关的就在这个时钟域中,如HDMI,TVENC... PSYS:(peripheral system)外围时钟域,就是GPIO接口,I2C接口,UART接口等这些外围设备就在这个时钟域上. 每个时钟域通过一条BRG(异步总线的桥梁)连接在一起. (2

Android 开发第七弹:简易时钟(秒表)

本文承接,Android 开发第五弹:简易时钟(闹钟) 和 Android 开发第六弹:简易时钟(计时器),这一部分是关于秒表的. 布局 同样是新建一个类(StopWatchView)并扩展自LinearLayout,并将其用作布局. <myapplication.nomasp.com.clock.StopWatchView android : id = "@+id/tabStopWatch" android : layout_width = "match_parent

(16)给树莓派B+ 安装一个实时时钟芯片DS1302

在这里首先感谢glgoo在google被墙的情况下提供搜索功能,还要感谢 http://wiringpi.com/ 以及github,尽管自己眼瞎,几经波折还是发现了尘封已久的少林"七十二绝技",没错,每种绝技都能克制一个树莓派GPIO控制外设的问题,七十二绝技的核心就是wiringpi这个为Pi GPIO写的C语言库了,而每种绝技则暗藏在wiringPi/examples/目录下,这里就不一一罗列了,大家想学什么招式,就去看每个example,都非常简短. 其实早在第9篇文章&quo

AppWidget 如android桌面上的时钟

一. 1.App widget 是在home桌面的一个空间,比如时钟,播放器播放时小图标可以点击下一首等那个. 2.AppWidgetProviderInfo 对象: 为App Widget 提供元数据,包括布局,更新频率等数据,这个对象被定义在xml文件当中. 3.AppWidgetProvider : 定义一个App Widget 的基本生命周期函数. 二.创建App Widget步骤: 1.定义AppWidgetProviderInfo : 在res/xml文件夹中定义 example_a

时钟+温度+遥控设置,综合时钟例子

时钟+温度+遥控设置,综合时钟例子6月30日到手的二手单片机开发板,今天做个综合的时钟例子,包含代码和仿真.做个近期的学习总结. 按独立键盘K1和红外遥控的EQ为设置键.按独立键盘K2和红外遥控的VOL+为加键.按独立键盘K3和红外遥控的VOL-为减键. 手摸温度传感器,当温度超过 34℃ 的时候点亮LED灯,模拟启动的设备. 程序有很多细节没有优化,主要是学习,lcd1602显示,独立建扫描,红外遥控,ds1302时钟芯片,ds18b20温度传感器. 实时时钟综合应用,源代码和仿真下载http

第35天:时钟效果

时钟效果案例 1.得到现在的时分秒2.旋转角度原理一圈360°   60s   1s/6°旋转second.style.WebkitTransform="rotate(60deg)";//每秒旋转60度 案例: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>时钟效果</

张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231

原文:张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231 GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/DS3231 注意:不包含闹钟设置