我正在使用这个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的交互以及如何禁用它?
答案 0 :(得分:17)
我正在使用MBProgressHUD版本0.5,只需设置:
HUD.userInteractionEnabled = NO;
这样就可以在父视图中进行用户交互。
答案 1 :(得分:0)
可能是因为按钮位于同一视图中,您尝试添加进度视图,当进度视图处于视图中时,此视图会阻止视图添加按钮的内容。
答案 2 :(得分:0)
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'方法中应用相同的条件。
快乐的编码......:)