2016-06-30 22 views
0

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

答えて

1

超簡単!

self.view.userInteractionEnabled =あなたが期待するようView Controllerのビューから偽

1

単に無効にするユーザーとの対話が常に動作しない場合があります。そのビューの外側にあるボタンがビューの階層にない場合、それらはクリック可能になります。あなたは何をすべき

は、一時的にアプリケーションレベルでユーザーとの対話を中断することです:

UIApplication.shared.beginIgnoringInteractionEvents() 
UIApplication.shared.endIgnoringInteractionEvents() 
関連する問題