0

AdColony の 2.2.4 ライブラリを SVProgressHUD を使用するアプリケーションに統合すると、奇妙な動作が発生します。アプリデリゲートで標準構成呼び出しが行われた場合...

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

呼び出しによって SVProgressHUD がアプリにポップアップ表示されなくなりました

[SVProgressHUD showWithStatus@"Status..."];

AdColony の configureWithAppID 呼び出しをコメントアウトするだけで、SVProgressHUD が再び正常に機能するようになります。他の誰かがこれに遭遇したか、同じアプリケーションで両方を機能させる方法を見つけましたか?

4

3 に答える 3

3

SVProgressHUD コードは、UIWindowLevelNormal レベルに属する複数の UIWindows が存在する可能性を考慮していない 436 行でチェックを行っているようです。この結果、HUD ビューが間違ったウィンドウに追加されます。SVProgressHUD を機能させるには、436 行目から始まる for ループを次のように変更します。

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

統合に関するご質問がございましたら、お気軽にお問い合わせください (support@adcolony.com)。

于 2014-02-19T18:33:54.157 に答える
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;
            }
        }

だからそれは動作します.. .ありがとう

于 2014-07-04T05:13:39.730 に答える
0

私のために働いた最も簡単な方法は

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

これは、受け入れられた回答と同じアクションを実行します。

于 2014-07-15T05:44:01.833 に答える