2016年12月26日 星期一

[IOS] Progress View



@IBOutlet weak var btnStart: UIButton!
    @IBOutlet weak var progress: UIProgressView!
    @IBOutlet weak var labelMsg: UILabel!
    
    //計時器
    var timer: Timer?
    //計數
    var count : Int = 0
    
    override func viewDidLoad() {
        super.viewDidLoad()
       
        progress.frame.size.width = 250
        //可以自訂progress顏色
        progress.progressTintColor = UIColor.red
        progress.trackTintColor = UIColor.darkGray
        progress.progress = 0
    }

    @IBAction func donloadClick(_ sender: UIButton) {
    //按鈕失效 避免重複點擊
        btnStart.isEnabled = false
        count = 0
        //參數順序亂掉會報錯
        //The runTimedCode selector means that the timer will call a method named runTimedCode() every 0.5 seconds until the timer is terminated
        timer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector:#selector(runTimedCode), userInfo: nil, repeats: true)
    }
    
    func runTimedCode() {
        progress.progress = Float(count) / 100
        labelMsg.text = "process: \(count)%"
        count += 1
        
        if count > 100 {
            timer!.invalidate() // stop
            timer = nil
            btnStart.isEnabled = true
        }
    }

參考資料:hackingwithswift.com

沒有留言:

張貼留言