2016-08-02 3 views
0

ローカルのコアデータをサーバーと同期する同期機能を作成しています。私は、ユーザーのやり取りを中断することなくバックグラウンドで同期を実行したいと思っています。応答(成功か失敗かに関わらず)を受け取ると、アプリは画面のどこかにメッセージを表示して、結果をユーザーに通知します。iOS - ユーザーインタラクションを中断することなくSVProgressHUDメッセージを画面に表示します。

UIAlertControllerは、ユーザーの操作をブロックするので適切ではありません。

現在、私はSVProgressHUDを使用しています:

__weak StampCollectiblesMainViewController *weakSelf = self; 
if ([[AppDelegate sharedAppDelegate] hasInternetConnectionWarnIfNoConnection:YES]) { 
    [_activityIndicator startAnimating]; 
    [Stamp API_getStampsOnCompletion:^(BOOL success, NSError *error) { 
     if (error) { 
      [_activityIndicator stopAnimating]; 
      [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear]; 
      [SVProgressHUD setAnimationDuration:0.5]; 
      [SVProgressHUD showErrorWithStatus:@"error syncronize with server"]; 
     } 
     else { 
      [_activityIndicator stopAnimating]; 
      [featuredImageView setImageWithURL:[NSURL URLWithString:[Stamp featuredStamp].coverImage] usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
      [yearDropDownList setValues:[Stamp yearsDropDownValues]]; 
      [yearDropDownList selectRow:0 animated:NO]; 
      [weakSelf yearDropDownListSelected]; 
      [SVProgressHUD dismiss]; 
     } 
    }]; 
} 

は、私はユーザーがまだアプリと対話することができますすることができます修正はありますか?あまりにも多くのスペースを取らずにメッセージを表示したいだけです。どんな助けも大歓迎です。ありがとう。

答えて

2

最も簡単なのはSVProgressHUDMaskTypeNoneです。

this issueもチェックしてください。

+0

良い解決策!今のところ私はSVProgressHUDに固執します。 SVProgressHUDの配置方法を知っていますか? –

+0

http://stackoverflow.com/questions/26728060/position-mbprogresshud-at-the-bottom-top-of-the-screen –

0

申し訳ありませんが、独自のカスタムビューを作成する必要があります。 実際、それほど難しいことではありません。私がやることは、カスタムメッセージとクローズボタンを使って画面の上部に小さなビューを追加するだけです(ユーザーがメッセージをすばやく隠すことができるようにする)。これは、通常、現在のウィンドウにこの新しいビューを追加することによって行われ、すべてのビューの最上位にあり、UIをブロックしません(そのビューで隠されている部分を除いて)。

関連する問題