AdColony + SVProgressHUD冲突

时间:2014-02-18 21:01:53

标签: ios svprogresshud

将AdColony的2.2.4库与使用SVProgressHUD的应用程序集成时,我遇到了一些奇怪的行为。如果在app delegate ...

中进行标准配置调用
[AdColony configureWithAppID:kAdColonyAppID zoneIDs:@[kAdColonyZoneID] delegate:nil logging:true];

通过调用

,不再在应用程序中弹出SVProgressHUD
[SVProgressHUD showWithStatus@"Status..."];

简单地注释掉AdColony configureWithAppID调用会导致SVProgressHUD再次正常运行。有没有其他人遇到这个,或者找到了让它们在同一个应用程序中工作的方法?

3 个答案:

答案 0 :(得分:3)

看起来SVProgressHUD代码正在对第436行进行检查,但没有考虑到存在属于UIWindowLevelNormal级别的多个UIWindows。这样做的结果是HUD视图被添加到错误的窗口。为了使SVProgressHUD正常工作,您可以修改从第436行开始的for循环,如下所示:

for (UIWindow *window in frontToBackWindows) {
    if (window.keyWindow) {
        [window addSubview:self.hudView];
        break;
    }
}

如果您有任何进一步的集成问题,请随时与我们联系(support@adcolony.com)。

答案 1 :(得分:0)

它适用于我,我添加了adcolony框架,因此SVProgress hud的成功消息未显示: 我评论代码:

//        for (UIWindow *window in frontToBackWindows)
//            if (window.windowLevel == UIWindowLevelNormal) {
//                [window addSubview:self.overlayView];
//                break;
//            }

并替换为

for (UIWindow *window in frontToBackWindows) {
            if (window.keyWindow) {
                [window addSubview:self.hudView];
                break;
            }
        }

所以它有效,..谢谢

答案 2 :(得分:0)

对我有用的最简单方法是

[[[UIApplication sharedApplication] keyWindow] addSubview:self. overlayView];

这会对接受的答案执行相同的操作。