广告
返回顶部
首页 > 资讯 > 移动开发 >iOS实现简易钟表
  • 403
分享到

iOS实现简易钟表

iOS钟表 2022-05-23 18:05:33 403人浏览 八月长安
摘要

本文实例为大家分享了iOS实现简易钟表的具体代码,供大家参考,具体内容如下 效果图: 注意:表盘是一个UIImageView控件,设置image为表盘图片 核心代码: // /

本文实例为大家分享了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

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

--结束END--

本文标题: iOS实现简易钟表

本文链接: https://www.lsjlt.com/news/30403.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS实现简易钟表
    本文实例为大家分享了iOS实现简易钟表的具体代码,供大家参考,具体内容如下 效果图: 注意:表盘是一个UIImageView控件,设置image为表盘图片 核心代码: // /...
    99+
    2022-05-23
    iOS 钟表
  • ios实现简易队列
    本文实例为大家分享了ios实现简易队列的具体代码,供大家参考,具体内容如下 满足一些特殊需求 接口部分(队列支持需求) #import <Foundation/Founda...
    99+
    2022-05-18
    ios 队列
  • vue2实现简易时钟效果
    本文实例为大家分享了vue2实现简易时钟效果的具体代码,供大家参考,具体内容如下 1.vue2+纯css实现 预览效果: 2.代码如下: <template>     ...
    99+
    2022-11-13
  • JavaScript实现简单钟表时钟
    本文实例为大家分享了JavaScript实现简单钟表时钟的具体代码,供大家参考,具体内容如下 效果图: 主要思想: 1.先画一个圆表盘。 2.再用js循环画刻度(每一个刻度都是li...
    99+
    2022-11-12
  • Android实现简易的闹钟功能
    本文实例为大家分享了Android实现简易的闹钟功能的具体代码,供大家参考,具体内容如下 主要是通过广播,实现一个闹钟的简易功能。 实现效果如下: 主界面为一个简易的设置闹钟Butt...
    99+
    2022-11-13
  • iOS实现简易的计算器
    本文实例为大家分享了iOS实现简易的计算器的具体代码,供大家参考,具体内容如下 初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再...
    99+
    2022-11-13
  • Python入门——实现简易数码时钟
    最近迷上了Python,要说为什么呢?Python语法简单,功能强大,有广泛的第三方库能快速编程实现自己的想法(无需重复去造轮子)。就像某位前辈说的:“人生苦短,学会偷懒…”,配置好sublime text照着网上教程直接上手写个小程序入...
    99+
    2023-01-31
    时钟 简易 入门
  • iOS实现简易的抽屉效果
    本文实例为大家分享了iOS实现简易的抽屉效果的具体代码,供大家参考,具体内容如下 1.添加需要实现抽屉效果的三个视图,这里需要注意主视图需要放在最后添加 // 左边视图  ... /...
    99+
    2022-11-13
    iOS 抽屉
  • 如何通过Canvas+JS实现简易的时钟
    今天就跟大家聊聊有关如何通过Canvas+JS实现简易的时钟,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。之前学习了下html5中的canvas元素,为了练练手就实现了一个简易的时钟...
    99+
    2023-06-17
  • VueEcharts简易实现仪表盘
    目录前言仪表盘的特点仪表盘的基本实现仪表盘的常见效果前言 本篇来学习写仪表盘图 仪表盘的特点 可以更直观的表现出某个指标的进度或实际情况 仪表盘的基本实现 ECharts 最基本的代...
    99+
    2022-12-17
    Vue Echarts仪表盘 Vue Echarts Vue仪表盘
  • web.py 十分钟创建简易博客实现代码
    一、web.py简介 web.py是一款轻量级的Python web开发框架,简单、高效、学习成本低,特别适合作为python web开发的入门框架。官方站点:http://webpy.org/ 二、web...
    99+
    2022-06-04
    十分钟 简易 代码
  • Qt实现简易秒表设计
    Qt–简易秒表设计(QTimer,Qtime,TableWiget应用),供大家参考,具体内容如下 效果图 使用QTimer和QTime两个类 思路: 1.计时功能:​...
    99+
    2022-11-13
    Qt 秒表
  • Android实现简易秒表功能
    本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 今天为了给师弟们讲安卓,花了10分钟写了一个简易的秒表app,现贴出代码,供各位刚入门以及还未入...
    99+
    2022-11-13
  • iOS实现简易计算器的代码怎么写
    本篇内容主要讲解“iOS实现简易计算器的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“iOS实现简易计算器的代码怎么写”吧!初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有...
    99+
    2023-06-29
  • java实现简易版简易版dubbo
    目录一、dubbo简介二、架构设计三、开发工具四、一步步实现4.1 客户端消费实现4.2 服务实例曝光到注册中心4.3 自动化配置实现五、测试5.1 编写api5.2 实现api,标...
    99+
    2022-11-12
  • iOS简单易用的GCD计时器的实现原理
    前言 好久没更新文章了,在掘金第一次发文章,还是给自己立一个flag每周至少更新一篇文章,可能文章的质量还不是很如意,希望通过写文章来提高自己文笔,以及记录自己学习中的遇到的问题解决...
    99+
    2022-05-17
    iOS GCD 计时器
  • iOS实现简易的导航栏颜色渐变实例代码
    前言 很多App首页要做成类似天猫和京东的导航栏,实现在页面滑动过程中导航栏渐变的效果。笔者之前在项目里用过一个三方,后来更新版本失效了,于是决定结合自己对导航栏的认识来实现一下这个...
    99+
    2022-06-04
    渐变 导航栏 颜色
  • js实现移动端简易滑动表格
    本文实例为大家分享了js实现移动端简易滑动表格的具体代码,供大家参考,具体内容如下 上js文件代码 <template>   <view>     <s...
    99+
    2022-11-13
  • C语言链表实现简易通讯录
    本文实例为大家分享了C语言链表实现简易通讯录的具体代码,供大家参考,具体内容如下 链表实现通讯录功能: 1.添加–(输入 姓名,电话) 2.删除-- (输入人名,删除该人) 3.查询...
    99+
    2022-11-12
  • python实现简易ATM
    环境:python2.7可以进一步完善# -*- coding: utf-8 -*- print u"+========================================+" print u"+=============201...
    99+
    2023-01-31
    简易 python ATM
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作