
屏幕快照 2017-03-04 下午5.16.22.png
import UIKit
class ViewController: UIViewController {
var datePicker:UIDatePicker!
var leftTime:Int = 60
var timer : Timer!
var alert :UIAlertController!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
datePicker = UIDatePicker(frame: CGRect(x: 0, y: 100, width: 300, height: 200))
datePicker.datePickerMode = .countDownTimer
datePicker.countDownDuration = TimeInterval(self.leftTime)
datePicker.addTarget(self, action: #selector(datePickerClick(_:)), for: .valueChanged)
self.view.addSubview(datePicker)
let btn = UIButton(type: .roundedRect)
btn.frame = CGRect(x: 100, y: 400, width: 50, height: 50)
btn.setTitle("开始", for: .normal)
btn.setTitleColor(UIColor.blue, for: .normal)
btn.setTitle("倒计时", for: .disabled)
btn.setTitleColor(UIColor.red, for: .disabled)
btn.addTarget(self, action: #selector(btnClick(_:)), for: .touchUpInside)
self.view.addSubview(btn)
}
func btnClick(_ btn:UIButton)
{
//不响应点击
btn.isEnabled = false
// 获取该倒计时器的剩余时间
leftTime = Int(datePicker.countDownDuration);
// 禁用UIDatePicker控件和按钮
datePicker.isEnabled = false
alert = UIAlertController(title: "倒计时", message: "\(leftTime)", preferredStyle: .alert)
self.present(alert, animated: true, completion: {
//print("\(self.leftTime)")
})
// 启用计时器,控制每秒执行一次tickDown方法
timer = Timer.scheduledTimer(timeInterval:1, target: self, selector: #selector(timeStart), userInfo: nil, repeats: true)
}
func timeStart()
{
alert.message = "\(leftTime)"
// 将剩余时间减少1秒
leftTime = leftTime-1
// 修改UIDatePicker的剩余时间
datePicker.countDownDuration = TimeInterval(leftTime)
print(leftTime)
if leftTime<=0 {
alert.message = "时间到"
datePicker.isEnabled = true
// 取消定时器
timer.invalidate();
}
}
func datePickerClick(_ dateP:UIDatePicker)
{
print("\(dateP.date)")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
网友评论