Xcode swift UIActivityIndicator查看建议
我有一个UIActivityIndicator视图运行良好。但我的问题是,如何防止应用程序用户在显示UIActivityIndicator时通过应用程序导航或单击按钮?我想强制用户等待,直到我运行的代码完成。这是我到目前为止所拥有的。任何帮助都将不胜感激Xcode swift UIActivityIndicator查看建议,xcode,swift,spinner,uiactivityindicatorview,Xcode,Swift,Spinner,Uiactivityindicatorview,我有一个UIActivityIndicator视图运行良好。但我的问题是,如何防止应用程序用户在显示UIActivityIndicator时通过应用程序导航或单击按钮?我想强制用户等待,直到我运行的代码完成。这是我到目前为止所拥有的。任何帮助都将不胜感激 class ViewController: UIViewController { var activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .Whit
class ViewController: UIViewController {
var activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .WhiteLarge)
var timer = NSTimer()
let delay = 4.5
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(activityIndicator)
activityIndicator.translatesAutoresizingMaskIntoConstraints = false
activityIndicator.color = UIColor.redColor()
let horizontalConstraint = NSLayoutConstraint(item: activityIndicator, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
view.addConstraint(horizontalConstraint)
let verticalConstraint = NSLayoutConstraint(item: activityIndicator, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
view.addConstraint(verticalConstraint)
getBalance()
}
func delayedAction(){
// time consuming code here that will run in the background with task
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.lblAccountBalance.text = "Account Balance " + myResult!
self.activityIndicator.stopAnimating();
})
}
func
getBalance () {
activityIndicator.startAnimating()
timer = NSTimer.scheduledTimerWithTimeInterval(delay, target: self, selector: #selector(delayedAction), userInfo: nil, repeats: false)
}
超级容易
self.view.userInteractionEnabled=false超级简单
self.view.userInteractionEnabled=false仅从视图控制器的视图中禁用用户交互可能并不总是像您预期的那样工作。如果该视图之外有任何按钮不在该视图的层次结构中,则可以单击这些按钮 您应该做的是暂时挂起应用程序级别的用户交互:
UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()
仅仅从视图控制器的视图中禁用用户交互可能并不总是如您所期望的那样工作。如果该视图之外有任何按钮不在该视图的层次结构中,则可以单击这些按钮 您应该做的是暂时挂起应用程序级别的用户交互:
UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()