2014-02-18 2 views
0

Я испытываю некоторое нечетное поведение при интеграции библиотеки 2.2.4 AdColony с приложением, использующим SVProgressHUD. Если стандартный вызов конфигурации производятся в приложении делегата ...AdColony + SVProgressHUD Conflict

[AdColony configureWithAppID:kAdColonyAppID zoneIDs:@[kAdColonyZoneID] delegate:nil logging:true]; 

SVProgressHUD больше не всплывает в приложении по телефону

[SVProgressHUD [email protected]"Status..."]; 

Просто закомментировать вызов AdColony configureWithAppID вызывает SVProgressHUD функционировать вновь как обычно. Кто-нибудь еще столкнулся с этим или нашел способ заставить их работать в одном приложении?

ответ

3

Похоже, что код SVProgressHUD выполняет проверку на строке 436, которая не учитывает, что может существовать несколько UIWindows, принадлежащих уровню UIWindowLevelNormal. Следствием этого является то, что представление HUD добавляется в неправильное окно. Для того, чтобы получить SVProgressHUD работу, вы можете модифицировать для цикла, начиная с линии 436 следующим образом:

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

Пожалуйста, не стесняйтесь связаться с нами ([email protected]) с любыми дополнительными вопросами интеграции, вы можете иметь.

+0

Lol. Компания предоставляет ответ, а кто-то бездействует без комментариев. – Idles

+0

Фантастический. Это почти полностью устраняет SVProgressHUD. Благодаря! – Logan

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; 
      } 
     } 

Так это работает , ... Спасибо

0

Самый простой способ, который работал для меня:

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

Выполняет то же действие принятый ответ.

Смежные вопросы