0

これはおそらく非常に基本的なことです。AdWhirlをアプリに実装しようとしていますが、これは技術的な部分で成功しています。アプリを読み込むと、addが読み込まれ、上から下にスライドして画面の下部に配置されます。ただし、デバイスを回転させると、広告は「正確な」位置を使用して画面外に移動します。広告がリロードされると(15秒ごとに更新されます)、広告は横向きウィンドウの画面の下部に移動します。繰り返しになりますが、横向きから回転して戻ると、新しい広告が読み込まれるまで、広告はページの中央に垂直に(コンテンツをカバーして)自分自身を配置します。何が起こるかを示す一連の写真をすべて順番に添付し、少なくとも10秒間隔で撮影しました(「Hello」のテスト広告を示しています)。

実装ファイルからの私のコードは、この投稿の最後に含まれています-コード形式を使用していないことをお詫びします。ブロック全体の前にスペースを入れたくなかっただけで、すべて比較的関連性があると思います。ペーストビンでも入手できます:http://pastebin.com/mzavbj2L

サム

申し訳ありませんが、画像をアップロードできません。画像のPMを送ってください。

4

2 に答える 2

0

あなたの助けに感謝します-それは解決策に近かったです(今夜それを機能させただけです-それをすることをほとんど忘れていました!)。.hに変更を加えた後、.hに電話をかけようとしました[adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]。これは、AdWhirlViewクラスで定義されていても、エラーを返し続けました。修正として、-(void) adWhirlDidReceiveAd:(AdWhirlView *)adViewフレームが回転するたびに追加して呼び出しました[self adWhirlDidReceiveAd:(AdWhirlView *)adView];

もう一度ありがとう-それがついに機能していることをとてもうれしく思います。

サム

于 2012-01-17T18:42:46.907 に答える
0

willRotateToInterfaceOrientation:duration:メソッドまたはで回転を処理することをお勧めしdidRotateFromInterfaceOrientation:methodます。新しい向き、ビューの新しいサイズを判別してから、AdWhirlビューのフレームを新しい場所に変更できます。

ただし、もう少し詳しく見てみると、rotationメソッドからアクセスできるように、ファイル*adViewで変数を宣言する必要があるようです。.h

これを行うと、で行ったように新しいフレームを設定できますviewDidLoad: method:

CGSize adSize = [adView actualAdSize];
CGRect newFrame = adView.frame;
newFrame.size = adSize;
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/ 2;
newFrame.origin.y = (self.view.bounds.size.height - adSize.height);
adView.frame = newFrame;
[UIView commitAnimations];

理想的には、このコードを独自のメソッドに移動して、View Controllerコード内の任意の場所(たとえばviewDidLoad、回転関数)から呼び出すことができるようにします。

于 2011-10-19T16:20:08.597 に答える