swift学习 - 计时器
swift学习之计时器
这个demo主要学习在swift中如何操作计时器(Timer),按钮(UIButton),文本(Label)
效果图:

代码
import UIKit
class ViewController: UIViewController {
var btn1:UIButton?
var timer:Timer?
var label:UILabel?
var a = 0.0
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
func setupUI() {
let button = UIButton(frame:CGRect(x: 20, y: 400, width:50, height: 50))
button.backgroundColor = .red
button.addTarget(self, action: #selector(startCLick(item:)), for: .touchUpInside)
button.layer.cornerRadius = 25
button.clipsToBounds = true
button.setTitle("开始", for: .normal)
btn1 = button
view.addSubview(button)
let btn = UIButton(frame:CGRect(x: 300, y: 400, width: 50, height: 50))
btn.backgroundColor = .blue
btn.addTarget(self, action: #selector(startCLick(item:)), for: .touchUpInside)
btn.setTitle("暂停", for: UIControlState.normal)
view .addSubview(btn)
let lab = UILabel(frame: CGRect(x: 50, y: 50, width: view.frame.size.width - 100, height: 50))
lab.textAlignment = .center
lab.font = .systemFont(ofSize: 18)
lab.backgroundColor = .red
lab.textColor = .white
view.addSubview(lab)
label = lab
lab.text = "swift stopWatch Demo"
}
func timerIntervalx() {
a+=1;
label?.text = "swift stopWatch Demo \(a)"
}
func startCLick(item:UIButton) {
if item.isEqual(btn1) {
timeStart()
}
else
{
timePause()
}
}
func timeStart() {
if !(timer != nil) {
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerIntervalx), userInfo: nil, repeats: true)
}
}
func timePause() {
timer?.invalidate()
timer = nil
}
}
基本控件的创建:
UIButton:
let btn = UIButton(frame:CGRect(x: 300, y: 400, width: 50, height: 50))
UILabel:
let lab = UILabel(frame: CGRect(x: 50, y: 50, width: view.frame.size.width - 100, height: 50))
Timer:
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerIntervalx), userInfo: nil, repeats: true)
swift中方法名更加简单,枚举类型可以直接使用点语法操作
.touchUpInside .white .center
swift学习 - 计时器的更多相关文章
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- 今天开始Swift学习
今天开始Swift学习 在此记录笔记 以备之后查阅! allenhuang
- iOS ---Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- 12套swift学习资源分享
虽然objective-c编程语言在过去很长一段时间都是iOS应用开发的基础语言,且很多iOS开发者对其也深爱有佳,但是随着swift编程语言的问世,迅速发展为开发者追捧的语言.且今年伴随着swift ...
- Swift学习之常用UI的使用
Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...
- [转]swift 学习资源 大集合
今天看到了一个swift的学习网站,里面收集了很多学习资源 [转自http://blog.csdn.net/sqc3375177/article/details/29206779] Swift 介绍 ...
- swift 学习资源 大集合
今天看到一个swift学习网站,其中我们收集了大量的学习资源 Swift 介绍 Swift 介绍 来自 Apple 官方 Swift 简单介绍 (@peng_gong) 一篇不错的中文简单介绍 [译] ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- swift学习:第一个swift程序
原文:swift学习:第一个swift程序 最近swift有点火,赶紧跟上学习.于是,个人第一个swift程序诞生了... 新建项目
随机推荐
- Spring基础学习(四)—AOP
一.AOP基础 1.基本需求 需求: 日志功能,在程序执行期间记录发生的活动. ArithmeticCalculate.java public interface ArithmeticCal ...
- python修行:练习购物车
product_list = [ ('Iphone',5800), ('Mac Pro',9800), ('Bike',800), ('Watch',10600), ('Coffee',31), (' ...
- 07 The VC Dimension
当N大于等于2,k大于等于3时, 易得:mH(N)被Nk-1给bound住. VC维:最小断点值-1/H能shatter的最大k值. 这里的k指的是存在k个输入能被H给shatter,不是任意k个输入 ...
- 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互依赖的文件打包在一起.webpack 本 ...
- UPS电源效果及有关名词解析
UPSuninterruptpowersystem缩写,4.工频机和高频机<工频机UPS选用工频变压器作为整流器和逆变器的部件的UPS电源:高频机是以高频开关元件代替整流器和逆变器中粗笨的工频变 ...
- ssh相关命令
ssh命令 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器. 语法ssh(选项)(参数)选项 -1:强制使用ssh协议版本1: -2:强制使用ssh协 ...
- Unity C# 多态 委托 事件 匿名委托 Lambda表达式 观察者模式 .NET 框架中的委托和事件
一.多态 里氏替换原则: 任何能用基类的地方,可以用子类代替,反过来不行.子类能够在基类的基础上增加新的行为.面向对象设计的基本原则之一. 开放封闭原则: 对扩展开放,意味着有新的需求或变化时,可以对 ...
- 【Java 并发】详解 ThreadPoolExecutor
前言 线程池是并发中一项常用的优化方法,通过对线程复用,减少线程的创建,降低资源消耗,提高程序响应速度.在 Java 中我们一般通过 Exectuors 提供的工厂方法来创建线程池,但是线程池的最终实 ...
- CPP笔记_泛型编程简单总结
本篇是基于<Essential C++>第三章泛型编程风格的一个简单总结 1 Iterator vector<string>::iterator 表明此iterator是位于 ...
- Redisson入门
Redisson入门 Author:Ricky Date:2017-04-24 Redisson概述 Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Dat ...