我刚刚下载了SVProgressHUD并将其合并到我的项目中,如github文档页面中所述,但即使我写出[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeGradient];
,它也与默认的掩码类型没有区别,当我点击屏幕时当光标旋转时,我的应用程序崩溃了 - 这意味着我无法禁用用户交互功能,因为我的应用程序在显示所有表视图单元格之前崩溃了。
请注意,clear
或black
掩码类型也不起作用。
那么如何才能成功禁用用户交互? AppDelegate.m
的{{1}}和applicationDidFinishWithLaunchingOptions:
FirstViewController.
的哪个文件应该写上面的代码?
我使用最新版本的viewDidLoad:
并使用Xcode 5.1和iOS 7.1。我也用ARC。我错过了什么吗?
这是一个错误问题,已在当前版本中得到解决。请在Github page上查看更多信息。
答案 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];
}