在iOS应用上禁用用户交互不在SVProgressHUD中工作

时间:2014-03-14 04:32:52

标签: ios objective-c svprogresshud

我刚刚下载了SVProgressHUD并将其合并到我的项目中,如github文档页面中所述,但即使我写出[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeGradient];,它也与默认的掩码类型没有区别,当我点击屏幕时当光标旋转时,我的应用程序崩溃了 - 这意味着我无法禁用用户交互功能,因为我的应用程序在显示所有表视图单元格之前崩溃了。

请注意,clearblack掩码类型也不起作用。

那么如何才能成功禁用用户交互? AppDelegate.m的{​​{1}}和applicationDidFinishWithLaunchingOptions: FirstViewController.的哪个文件应该写上面的代码?

我使用最新版本的viewDidLoad:并使用Xcode 5.1和iOS 7.1。我也用ARC。我错过了什么吗?

[更新]

这是一个错误问题,已在当前版本中得到解决。请在Github page上查看更多信息。

5 个答案:

答案 0 :(得分:12)

这已经很晚才回答,但万一它可以帮助某人,因为我今天已经坚持这个问题一段时间了。如果你正在使用github的最新类,你将不会遇到任何问题,但是如果你使用旧类,那么从SVProgressHUD.m替换下面的方法如下

+ (void)showWithStatus:(NSString *)status 
  {   
     [self setDefaultMaskType:SVProgressHUDMaskTypeGradient];
     [self showProgress:SVProgressHUDUndefinedProgress status:status];
  }

答案 1 :(得分:4)

我正在使用SVProgressHUD和swift以及iOS 10.2。只需设置掩码类型

在AppDelegate

SVProgressHUD.setDefaultMaskType(.black)有效。

每次写作

SVProgressHUD.show()

它将显示掩码,userInteraction由它管理。

答案 2 :(得分:3)

你没有遗漏任何东西。 iOS 7似乎不尊重掩码类型,因此永远不会禁用用户交互。我认为它是SVProgressHUD的一个错误,而不是其他任何东西。有点令人沮丧。

答案 3 :(得分:0)

通过在SVProgressHUD类中进行一些更改,可以轻松完成: 刚放入    [self.window setUserInteractionEnabled:NO];的最后一个showprogress with status,并将[self.window setUserInteractionEnabled:YES];放入dismiss方法。

答案 4 :(得分:0)

目标C(AppDelegate.m)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //add this line
    [SVProgressHUD setDefaultMaskType: SVProgressHUDMaskTypeBlack];
}