Domanda

Questo è probabilmente qualcosa di molto semplice. Sto cercando di implementare AdWhirl nella mia app, che ho fatto con successo per la parte tecnica. Quando carico il mio app, i carichi aggiuntivi e poi scivola giù dalla cima di sedersi nella parte inferiore dello schermo. Tuttavia, quando ho ruotare il dispositivo, gli usi annuncio posizioni "precise" e si muove fuori dallo schermo. Quando le ricariche annuncio (refresh ogni 15 secondi) l'annuncio si muove fino alla parte inferiore dello schermo della finestra paesaggio. Anche in questo caso, quando si ruota indietro dal paesaggio, l'allinea alla pubblicità è di per sé al centro della pagina in verticale (che copre il contenuto) fino a nuovi carichi annuncio. Ho allegato una serie di foto, in una serie che mostra cosa succede, tutto in ordine e preso almeno 10 secondi a parte (che mostrano prova annuncio di "Ciao").

Il mio codice dal file di implementazione è incluso alla fine di questo post - mi dispiace per non usare il formato del codice, semplicemente non voglio mettere gli spazi di fronte a tutto il blocco, e penso che sia tutto abbastanza rilevante. E 'disponibile anche presso il bidone pasta: http://pastebin.com/mzavbj2L

Sam

Ci dispiace - non sarebbe mi lascia caricare le immagini. Vi prego di inviarmi un PM per le immagini.

È stato utile?

Soluzione 2

Thanks for your help - it was close to a solution (only just got it working tonight - had mostly forgotten about doing it!). After I made you changes to my .h, I was trying to call [adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]. This kept returning errors, even though it was defined in the AdWhirlView class. As a fix, I added -(void) adWhirlDidReceiveAd:(AdWhirlView *)adView and then called each time the frame rotated [self adWhirlDidReceiveAd:(AdWhirlView *)adView];.

Thanks again - so glad it's finally working.

Sam

Altri suggerimenti

I recommend handling the rotation in the willRotateToInterfaceOrientation:duration: method or the didRotateFromInterfaceOrientation:method. You will be able to determine what your new orientation is, the new size of your view, and then change the frame of your AdWhirl view to the new location.

After looking a bit closer, however, it looks like you might need to make *adView a variable declared in your .h file so you can access it from the rotation methods.

Once you do that, you can set your new frame as you did in the 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];

Ideally, you would move this code into its own method so you can just call it from wherever you want in your view controller code (e.g. viewDidLoad and the rotation function(s)).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top