作者:Arthur Knopper,原文链接,原文日期:2016-10-31
译者:Crystal Sun;校对:星夜暮晨;定稿:CMB
本节教程讲述如何创建一个简单的计时器,其功能有开始、暂停和重置归零。本节教程将使用 Xcode 8 和 iOS 10 来进行构建。
打开 Xcode,创建一个 Single VIEw Application。
点击 Next,product name 一栏填写 IOS10StopwatchTutorial,填写好 Organization name 和 Organization IDentifIEr,Language 选择 Swift,并确保 Devices 一栏中选择了 iPhone。
前往 Storyboard 当中,拖一个 Vertical Stack VIEw 放到主界面。随后再拖一个 Label 放到 Stack VIEw 当中,将其 Title 改为 “00:00”。接下来,拖三个 button 放到 Stack VIEw 当中,使其位于 Label 下方,Title 分别改为"Start","Pause" 和 “reset”。Storyboard 看起来如下图所示:
选中这个 Vertical Stack VIEw,点击 Storyboard 右下角的 auto Layout 中的 Align 按钮,在d出窗中输入下图中所示的值,随后点击 "Add 1 Constraint"。
再次选中 Vertical Stack VIEw,点击 Storyboard 右下角的 auto Layout 中的 Pin 按钮,在d出窗中输入下图中所示的值,随后点击 "Add 1 Constraint"。
然后点击 Assistant Editor,确保 VIEwController.swift 文件可见。按住 Ctrl,把 Label 拖到 VIEwController 类文件里,创建一个 Outlet 如下图所示:
按住 Ctrl,把 Start 按钮拖到 VIEwController 类文件里,创建一个 Outlet 如下图所示:
按住 Ctrl,把 Pause 按钮拖到 VIEwController 类文件里,创建一个 Outlet 如下图所示:
按住 Ctrl,把 Start 按钮拖到 VIEwController 类文件里,创建一个 Action 如下图所示:
按住 Ctrl,把 Pause 按钮拖到 VIEwController 类文件里,创建一个 Action 如下图所示:
按住 Ctrl,把 reset 按钮拖到 VIEwController 类文件里,创建一个 Action 如下图所示:
找到 VIEwController.swift 文件,然后增加下列属性:
var counter = 0.0var timer = Timer()var isPlaying = false
将 vIEwDIDLoad 方法更改为:
overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() timeLabel.text = String(counter) pausebutton.isEnabled = false}
实现 IBAction 方法:
@IBAction func startTimer(_ sender: AnyObject) { if(isPlaying) { return } startbutton.isEnabled = false pausebutton.isEnabled = true timer = Timer.scheduledTimer(timeInterval: 0.1,target: self,selector: #selector(UpdateTimer),userInfo: nil,repeats: true) isPlaying = true} @IBAction func pauseTimer(_ sender: AnyObject) { startbutton.isEnabled = true pausebutton.isEnabled = false timer.invalIDate() isPlaying = false}@IBAction func resetTimer(_ sender: AnyObject) { startbutton.isEnabled = true pausebutton.isEnabled = false timer.invalIDate() isPlaying = false counter = 0.0 timeLabel.text = String(counter)}
isPlaying
布尔值用于检查计时器的 timer 是否正在运行。NSTimer
类里的 invalIDate
方法可以停止计时。计时器开始计时时调用此 updateTimer 方法。
func UpdateTimer() { counter = counter + 0.1 timeLabel.text = String(format: "%.1f",counter)}
编译并运行此工程,在模拟器中点击按钮使用计时器。
在 ioscreator 的 github 上可以下载到本节课程 IOS10StopWatchTutorial 的源代码。
总结本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg。
以上是内存溢出为你收集整理的计时器教程全部内容,希望文章能够帮你解决计时器教程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)