gpt4 book ai didi

swift - 呈现 UIAlert 时延迟较长

转载 作者:行者123 更新时间:2023-11-30 11:02:28 28 4
gpt4 key购买 nike

我在呈现警报时遇到问题。我正在使用 UIAlertController。当用户按下提交按钮时,在应用程序执行某些操作时,需要立即显示“请稍候..”的警报。操作完成后,警报将消失。尽管应该在我开始执行操作之前显示警报,但在显示警报之前我有很长的延迟(几秒钟)。我尝试调度异步并尝试使用闭包,但没有任何效果......在出现警报之前仍然延迟了几秒钟。我如何才能在按下按钮后立即显示警报?

override func viewDidLoad() {

super.viewDidLoad()

submitButton.addTarget(self,action:#selector(buttonAction),for:.touchUpInside)

}



@objc func buttonAction(){

waiting()

doOperations()

}

func waiting(){
DispatchQueue.main.async{
let alert = UIAlertController(title: nil, message: "Please wait...", preferredStyle: .alert)

let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
loadingIndicator.startAnimating()

alert.view.addSubview(loadingIndicator)

self.present(alert, animated: false, completion: nil)
}

}


func doOperations(){
...
}

func dismissWaiting{
...
//dismiss alert
}

最佳答案

只需将警报分派(dispatch)到主线程即可。

关于swift - 呈现 UIAlert 时延迟较长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53166425/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com