首页 > 代码库 > swfit-计时器

swfit-计时器

import UIKit

class FourVC: UIViewController {

    var label:UILabel = UILabel()
    var index : Int = 1
    var timer:Timer = Timer()
    override func viewDidLoad() {
        super.viewDidLoad()

        label = UILabel.init()
        label.frame = CGRect.init(x:100,y:100,width:200 ,height:200)
        label.text = "计时器"
        label.textColor = UIColor.black
        self.view.addSubview(label)
        
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(createTimer), userInfo: nil, repeats: true)
        RunLoop.current.add(timer, forMode: RunLoopMode.commonModes)
        timer.fireDate = NSDate.distantFuture

        let endTimeBtn : UIButton = UIButton()
        endTimeBtn.frame = CGRect.init(x:250,y:300,width:100 ,height:50)
        endTimeBtn.backgroundColor = UIColor.cyan
        endTimeBtn.setTitle("停止计时", for: UIControlState.normal)
        endTimeBtn.titleColor(for: UIControlState.normal)
        endTimeBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
        endTimeBtn.addTarget(self, action: #selector(pressBtn1), for: UIControlEvents.touchUpInside)
        self.view.addSubview(endTimeBtn)
        
        let startTimeBtn : UIButton = UIButton()
        startTimeBtn.frame = CGRect.init(x:50,y:300,width:100 ,height:50)
        startTimeBtn.backgroundColor = UIColor.cyan
        startTimeBtn.setTitle("开始计时", for: UIControlState.normal)
        startTimeBtn.titleColor(for: UIControlState.normal)
        startTimeBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
        startTimeBtn.addTarget(self, action: #selector(pressBtn), for: UIControlEvents.touchUpInside)
        self.view.addSubview(startTimeBtn)

    }
    
    func pressBtn(){
        
        //开始计时,很远的过去
        timer.fireDate = NSDate.distantPast

    }
    
    func pressBtn1(){
        //关闭计时,很远的将来
        timer.fireDate = NSDate.distantFuture

    }
    func createTimer(){
        
        index += 1
        label.text = "\(index)"
        
        if index == 11 {
            //关闭计时器
            timer.fireDate = NSDate.distantFuture
            label.text = "倒计时停止\(index)"
        }
        
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

 

swfit-计时器