UIAlertController 中的倒计时
Posted
技术标签:
【中文标题】UIAlertController 中的倒计时【英文标题】:Countdown in UIAlertController 【发布时间】:2016-04-06 12:18:18 【问题描述】:我想在我的警报控制器中倒计时 3 秒。不知道该怎么做。我可以让警报在 3 秒内消失,只是倒计时不见了。
//simple alert dialog
let alertController = UIAlertController(title: "Workflow successful", message: "Modified reminder's priority or list.", preferredStyle: .Alert)
var secs = 3
let defaultAction = UIAlertAction(title: "Dismiss in " + secs, style: .Default, handler: nil)
alertController.addAction(defaultAction)
dispatch_async(dispatch_get_main_queue())
//self.presentViewController(alertController, animated: true, completion: nil)
self.showViewController(alertController, sender: self)
let delayTime = dispatch_time(DISPATCH_TIME_NOW,
Int64(secs * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue())
alertController.dismissViewControllerAnimated(true, completion: nil)
【问题讨论】:
【参考方案1】:设置延迟时间以关闭视图控制器后,您可以设置一个计时器以在一秒钟后调用函数,例如:
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(self.decrease), userInfo: nil, repeats: true)
func decrease()
self.secs-=1
self.defaultAction.setValue("Dismiss in \(self.secs)", forKey: "title")
它会用你的新时间更新标题。
【讨论】:
以上是关于UIAlertController 中的倒计时的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 中的 UIAlertController 返回 nil
在 UIAlertController 中的 UIAlertAction 中将图像居中
UIAlertController中的多行可编辑文本UITextview?
UIAlertController 或 UITextField 中的 UILabel 类似 UILabel
TextfieldShouldBeginediting Objective-c 中的 UIAlertcontroller