Question

Ceci est probablement quelque chose assez basique. Je suis en train de mettre en œuvre AdWhirl dans mon application, que je l'ai fait avec succès pour la partie technique. Quand je charge mon application, les charges d'add et puis glisse vers le bas à partir du haut pour siéger au bas de l'écran. Cependant, quand je tourne l'appareil, l'annonce des emplacements et utilisations mouvements « précis » hors de l'écran. Lorsque les rechargements Annonce (de 15 à jour toutes les secondes), l'annonce se déplace jusqu'au bas de l'écran de la fenêtre du paysage. Encore une fois, lors de la rotation arrière du paysage, l'annonce Aligne ce soi-même au milieu de la page verticale (contenu couvrant) jusqu'à ce qu'une nouvelle charge annonce. Je joins un certain nombre de photos dans une série montrant ce qui se passe, tout en ordre et pris au moins 10 secondes d'intervalle (montrant annonce de test de « Bonjour »).

Mon code à partir du fichier de mise en œuvre est inclus à la fin de ce post - désolé pour ne pas utiliser le format de code, ne voulait pas mettre des espaces devant le bloc entier, et je crois que tout est relativement pertinent. Il est également disponible à la poubelle coller: http://pastebin.com/mzavbj2L

Sam

Désolé - il ne me laisse pas télécharger des images. S'il vous plaît envoyez-moi un MP pour les images.

Était-ce utile?

La solution 2

Merci pour votre aide - il était proche d'une solution (juste obtenu ce soir travail - avait souvent oublié de le faire!). Après je vous ai fait des modifications à mon .h, je voulais appeler [adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]. Cela a gardé des erreurs de retour, même si elle a été définie dans la classe de AdWhirlView. Comme solution, j'ai ajouté -(void) adWhirlDidReceiveAd:(AdWhirlView *)adView puis appelé à chaque fois que le cadre mis en rotation [self adWhirlDidReceiveAd:(AdWhirlView *)adView];.

Merci encore -. Si heureux qu'il travaille enfin

Sam

Autres conseils

je recommande la manipulation de la rotation dans la méthode willRotateToInterfaceOrientation:duration: ou didRotateFromInterfaceOrientation:method. Vous serez en mesure de déterminer ce que votre nouvelle orientation est, la nouvelle taille de votre point de vue, puis changer le cadre de votre point de vue AdWhirl vers le nouvel emplacement.

Après avoir un peu plus près, cependant, il semble que vous pourriez avoir besoin de faire *adView une variable déclarée dans votre fichier .h afin que vous puissiez y accéder à partir des méthodes de rotation.

Une fois que vous faites cela, vous pouvez configurer votre nouveau cadre que vous avez fait dans le 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];

Idéalement, vous pouvez déplacer ce code dans sa propre méthode afin que vous puissiez simplement l'appeler où que vous voulez dans votre point de vue code du contrôleur (par exemple viewDidLoad et la fonction de rotation (s)).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top