5

私はこのMBProgressHUDコードを使用しています:

  MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  hud.mode = MBProgressHUDModeText;
  hud.removeFromSuperViewOnHide = YES;
  [hud hide:YES afterDelay:1];

HUDが表示されている間、UIScrollview(これが呼び出されるボタンを含む)との対話は無効になります。他のボタンをクリックしたり、UIScrollviewをスクロールしたりできません。

MBProgressHUDがUIScrollviewとの対話をブロックするのはなぜですか?また、それを無効にするにはどうすればよいですか?

4

3 に答える 3

17

私はMBProgressHUDバージョン0.5を使用しており、次のように設定します。

HUD.userInteractionEnabled = NO;

これにより、親ビューでのユーザー操作が可能になります。

于 2013-01-07T17:55:20.937 に答える
0

MBPregressHUDは、以下のメソッドでの相互作用をブロックします

-(void)show:(BOOL)animated{
    [[UIApplication sharedApplication] beginIgnoringInteractionEvents];
    ...
    ...
    ...
}

このコード行は、アプリケーション内のすべての対話をブロックします。インタラクションを維持したい場合は、クラスレベルのBOOLを介してドライブし、それを呼び出してisModal、インタラクションをブロックするかどうかを決定できます。

 -(void)show:(BOOL)animated{
      if(isModal){
        [[UIApplication sharedApplication] beginIgnoringInteractionEvents];
      }
      ...
      ...
      ...
  }

理想的には、このBOOLをパラメーターとして使用するために、新しい「init」メソッドを作成する必要があります。可能な署名は

- (id)initWithView:(UIView *)view isModal:(BOOL)modal;

次に、ビューを初期化した後、このメソッド内でクラスレベルのBOOLを初期化します。'hide'メソッドでも同じ条件を適用する必要があります。

ハッピーコーディング...:)

于 2012-10-18T05:55:47.390 に答える
0

おそらく、ボタンが進行状況ビューを追加しようとしているものと同じビューにあり、進行状況ビューが表示されている場合、このビューはボタンが追加されたビューをブロックします。

于 2012-05-14T23:36:55.570 に答える