2017年5月16日火曜日

NSTimerを使って時計表示をしてみる(1)

timerの生成とRunloopへの登録...を同時に行う方法らしいです

1. タイマーを起動する
param3がtimerハンドラを指定
        NSTimer.scheduledTimerWithTimeInterval(
    0.01,     // 繰り返す時間(秒)
    target: self,
    selector: (#selector(ViewController.DispWatchCount)),  // ハンドラ
    userInfo: nil,
    repeats: true    //リピート実行
   )

2. timerハンドラの記述
    func DispWatchCount(){
       ...
    }
 
ちなみに等幅フォントとして時計表示部分は Courier 50.0 を使用

---
import UIKit

class ViewController: UIViewController {

    var count:Int = 0
   
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
       
        NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: (#selector(ViewController.DispWatchCount)), userInfo: nil, repeats: true)
       
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBOutlet weak var DispTime: UILabel!
    // Timer handler
    func DispWatchCount(){
        let date = NSDate()
       
        let formatter = NSDateFormatter()
        formatter.dateFormat = "HH:mm:ss:SS"
        let dispTime = formatter.stringFromDate(date)
       
        /* メンバーにアクセスする場合
        let calender = NSCalendar.currentCalendar()
        let component = calender.components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second], fromDate: date)
        let dispTime = String(component.hour) + ":" + String(component.minute) + ":" + String(component.second)
        */
        DispTime.text = dispTime
    }
}

0 件のコメント:

コメントを投稿