私はUIActivityIndicatorViewがうまく機能しています。しかし、私の質問は、UIActivityIndicatorが表示されている間に、アプリを介してアプリのユーザーをナビゲートしたり、ボタンをクリックしたりすることをどうやって防ぎますか?実行しているコードが完了するまで、ユーザーに強制的に待ちたい。ここまで私がこれまで持っていたことがあります。どんな助けでも大歓迎です。swift UIActivityIndicatorView advice
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)
}