Frage

Dies ist wahrscheinlich etwas ganzer einfach. Ich versuche, Adwhirl in meine App zu implementieren, die ich für den technischen Teil erfolgreich gemacht habe. Wenn ich meine App lade, fügen Sie Ladungen hinzu und rutschen dann von oben nach unten, um am unteren Bildschirmrand zu sitzen. Wenn ich das Gerät jedoch drehe, verwendet die Anzeige "präzise" Standorte und bewegt sich vom Bildschirm. Wenn sich die Anzeige neu lädt (alle 15 Sekunden aktualisiert), bewegt sich die Anzeige bis zum unteren Bildschirm des Landschaftsfensters. Auch beim Zurückdrehen aus der Landschaft übereinstimmt die Werbung sie in der Mitte der Seite vertikal (Abdeckung von Inhalten), bis eine neue Anzeige geladen wird. Ich habe eine Reihe von Fotos in einer Serie beigefügt, die zeigt, was passiert, alles in Ordnung und mindestens 10 Sekunden voneinander entfernt (Testwerbung von "Hallo").

Mein Code aus der Implementierungsdatei ist am Ende dieses Beitrags enthalten - Entschuldigung, dass Sie das Code -Format nicht verwendet haben, wollte einfach nicht Leerzeichen vor den gesamten Block setzen, und ich denke, dass alles relativ relevant ist. Es ist auch am Pastebehälter erhältlich: http://pastebin.com/mzavbj2l

Sam

Entschuldigung - es würde mich nicht dazu bringen, Bilder hochzuladen. Bitte senden Sie mir eine PM für Bilder.

War es hilfreich?

Lösung 2

Vielen Dank für Ihre Hilfe - es war in der Nähe einer Lösung (nur heute Abend zum Laufen - hatte es größtenteils vergessen!). Nachdem ich dich Änderungen an meinem .H gemacht hatte, versuchte ich anzurufen [adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]. Dies gab immer wieder Fehler zurück, obwohl es in der adwhirlview -Klasse definiert wurde. Als Fix fügte ich hinzu -(void) adWhirlDidReceiveAd:(AdWhirlView *)adView und dann jedes Mal aufgerufen, wenn sich der Rahmen drehte [self adWhirlDidReceiveAd:(AdWhirlView *)adView];.

Nochmals vielen Dank - ich bin so froh, dass es endlich funktioniert.

Sam

Andere Tipps

Ich empfehle den Umgang mit der Rotation in der willRotateToInterfaceOrientation:duration: Methode oder die didRotateFromInterfaceOrientation:method. Sie können feststellen, wie hoch Ihre neue Ausrichtung ist, welche neue Größe Ihrer Ansicht ist, und dann den Rahmen Ihrer Adwhirl -Ansicht auf den neuen Standort zu ändern.

Nachdem Sie ein bisschen näher geschaut haben, sieht es jedoch so aus, als müssten Sie möglicherweise machen *adView eine in Ihrem deklarierte Variable .h Datei, damit Sie aus den Rotationsmethoden darauf zugreifen können.

Sobald Sie das getan haben, können Sie Ihren neuen Rahmen wie in der 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];

Idealerweise verschieben Sie diesen Code in eine eigene Methode, damit Sie ihn einfach von wo immer in Ihrem Ansichtscontroller -Code (z. viewDidLoad und die Rotationsfunktion (en)).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top