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

在UIAlertController中的操作下方显示空格