タイマーを作る

Swift3.0
import UIKit
class ViewController: UIViewController {
var cnt : Float = 0
var myLabel : UILabel!
override func viewDidLoad() {
myLabel = UILabel(frame: CGRect(x:0,y:0,width:200,height:50))
myLabel.backgroundColor = UIColor.orange
myLabel.layer.masksToBounds = true
myLabel.layer.cornerRadius = 20.0
myLabel.text = "Time:\(cnt)"
myLabel.textColor = UIColor.white
myLabel.shadowColor = UIColor.gray
myLabel.textAlignment = NSTextAlignment.center
myLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 200)
self.view.backgroundColor = UIColor.cyan
self.view.addSubview(myLabel)
Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.onUpdate(timer:)), userInfo: nil, repeats: true)
}
func onUpdate(timer : Timer){
cnt += 0.1
let str = "Time:".appendingFormat("%.1f",cnt)
myLabel.text = str
}
}
Swift 2.3
import UIKit
class ViewController: UIViewController {
var cnt : Float = 0
var myLabel : UILabel!
override func viewDidLoad() {
myLabel = UILabel(frame: CGRectMake(0,0,200,50))
myLabel.backgroundColor = UIColor.orangeColor()
myLabel.layer.masksToBounds = true
myLabel.layer.cornerRadius = 20.0
myLabel.text = "Time:\(cnt)"
myLabel.textColor = UIColor.whiteColor()
myLabel.shadowColor = UIColor.grayColor()
myLabel.textAlignment = NSTextAlignment.Center
myLabel.layer.position = CGPoint(x: self.view.bounds.width/2,y: 200)
self.view.backgroundColor = UIColor.cyanColor()
self.view.addSubview(myLabel)
NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(ViewController.onUpdate(_:)), userInfo: nil, repeats: true)
}
func onUpdate(timer : NSTimer){
cnt += 0.1
let str = "Time:".stringByAppendingFormat("%.1f",cnt)
myLabel.text = str
}
}
2.3と3.0の差分
- UIColorの参照方法が変更(UIColor.grayColor()->UIColor.gray)
- CGRect,CGPointの初期化方法の変更(CGRectMake,CGPointMakeの廃止)
- NSTimerの廃止、Timerに変更
scheduledTimerWithTimeInterval
がscheduledTimer(timeInterval:
に変更
stringByAppendingFormat
がappendingFormat
に変更
Reference