显示时,MBProgressHUD阻止与uiscrollview的交互

我正在使用这个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的交互以及如何禁用它?

我正在使用MBProgressHUD版本0.5,只需设置:

 HUD.userInteractionEnabled = NO; 

这样就可以在父视图中进行用户交互。

也许是因为按钮在同一视图中,您尝试添加进度视图,当进度视图处于视图中时,此视图会阻止视图添加按钮的内容。

MBPregressHUD阻止以下方法中的交互

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

这行代码阻止了应用程序内的所有交互。 如果您确实希望保持交互,通过类级别BOOL驱动它,您可以将其称为isModal并决定是否要阻止交互

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

理想情况下,您应该创建一个新的’init’方法,将此BOOL作为参数。 可能的签名可能是

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

然后在初始化视图后初始化此方法中的类级BOOL。 应该在’hide’方法中应用相同的条件。

快乐的编码…… 🙂