我创建了一个包含UIActivityIndicator的UIAlertView.一切都很好,但我也希望UIAlertView在5秒后消失.

How can I Dismiss my UIAlertView after 5 seconds?

 var alert: UIAlertView = UIAlertView(title: "Loading", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel");

 var loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37)) as UIActivityIndicatorView
 loadingIndicator.center = self.view.center;
 loadingIndicator.hidesWhenStopped = true
 loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
 loadingIndicator.startAnimating();

 alert.setValue(loadingIndicator, forKey: "accessoryView")
 loadingIndicator.startAnimating()

 alert.show()

推荐答案

您可以通过编程方式在5秒延迟后取消UIAlertView,如下所示:

alert.show()

// Delay the dismissal by 5 seconds
let delay = 5.0 * Double(NSEC_PER_SEC)
var time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
    alert.dismissWithClickedButtonIndex(-1, animated: true)
})

Swift相关问答推荐

我正在try 通过代码设置节中页眉和页脚的高度,但它不起作用

String.Index encodedOffset已弃用,但建议的替代方案不起作用

从任务中打印

Swift 运算符中 inout 的行为

表视图插座单元测试失败

当将新值推送到 NavigationStack 时,SwiftUI 的 navigationDestination 已在堆栈的早期声明

Xcode创建GitHub仓库,但未推送所有文件

在 SwiftUI 中禁用 Select 器选项

如何在闭包中使用构造 await sync

并发执行代码中捕获的 var 的变异

LeetCode 249. 分组移位字符串

Swift 全局函数列表

Swift - 给定一个像 30 的 Int 如何将范围数乘以 7?

类型 '()' 不能符合 View (除非它肯定是 View,这次没有恶作剧)

Swift:withCheckedContinuation 和 Dispatch QoSClass

'#selector' 的参数不引用 '@objc' 方法、属性或初始化程序

将强制向下转换视为可选将永远不会产生零

为 UIImagePicker 设置委托返回错误

将活动指示器 colored颜色 更改为黑色

在 Swift 中覆盖 UIScrollView 的委托属性(就像 UICollectionView 一样)