2016-08-06 8 views
0

私は(説明の目的のために)次のコードを持って戻った後のUIViewが示されている:IBActionメソッドは

- (IBAction)buttonPress:(id)sender { 
    UIView *overlayView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]; 
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
    activityIndicator.center = overlayView.center; 
    [overlayView addSubview:activityIndicator]; 
    [self.navigationController.view addSubview:overlayView]; 
    //[self.navigationController.view bringSubviewToFront:overlayView]; 
    [activityIndicator startAnimating]; 

    sleep(10); 

    //[overlayView removeFromSuperview]; 
} 

オーバーレイビューのみメソッドの復帰後に表示されている理由かしら...

+0

スタックから –

+0

@MikeAlterを返すところから:) –

答えて

0

sleep(10)は、画面上に描画するなどのUI関連のアクティビティを実行するメインスレッドをブロックするためです。

sleep(10)行を削除しても問題ありません。

ここでSOの場合には、あなたがコカ・タッチの遅延を使用する方法が興味を持っているために、リンクにあります:
Adding delay between execution of two following lines

+0

右...そして、それは悪いですメソッド内で同期操作を使用するアイデア。 –

関連する問題