2010-07-08 4 views
1

J'utilise IB pour placer un UIImageView (en haut) ADBannerView (en bas) et dans la même vue. Lorsque je clique sur l'annonce en cours d'exécution dans le simulateur, après avoir ignoré l'écran d'annonce, l'UIImageView est poussé 20px vers le bas, laissant un espace entre la barre d'état et UIImageView.20px écart entre le haut de ImageView et le bas de la barre d'état après le retour de l'animation iAd

J'ai essayé de jouer avec tous les paramètres AutoResizing dans l'inspecteur sans succès. Étrangement, d'autres objets, comme UITextViews qui sont superposés à UIImageView, se décalent également, mais répondent aux paramètres AutoResizing de sorte qu'après avoir correctement défini les entretoises, les UITextViews restent en place après le retour de l'animation publicitaire. ?? Ce problème semble être similaire à My view is displaying y=-20 dispite its frame set to y=0. After rotation it snaps back to y=0. Cependant, ajouter

self.view.frame = [[UIScreen mainScreen] applicationFrame]; 

pour voirDidLoad échoue. (Je pense que c'est probablement parce que 3.022.773 le sous-vue est créé par programme, alors qu'ici sa part de la pointe)

En outre, ce poste iAd left white blank screen after closed implique que ma vue parent (la vue tenant à la fois UIImageView & ADBannerView) doit être un « plein écran vue ", mais je ne peux pas comprendre comment cela s'applique lors de l'utilisation de IB. (Je ne vois AUCUN paramètre dans Inspector qui me permette de dire à XCode que le parent View devrait avoir cette propriété)

Des idées là-bas?

Très apprécié!

+0

est votre application une application plein écran, ou avez-vous la barre d'état indiquant? La propriété view de votre contrôleur de vue pointe-t-elle vers la vue racine, ce qui signifie que la vue principale de la vue est une fenêtre? – lucius

+0

La barre d'état est affichée. Je crois que le contrôleur de vue pointe vers la vue racine. Dans mon application, la méthode applicationDidFinishLaunching que je fais: [window addSubview: [vue soloViewController]]; \t [fenêtre makeKeyAndVisible]; si cela vous aide ... (soloViewController est le contrôleur de vue et il n'y a qu'une seule vue, où ImageView est une sous-vue et AdBannerView la 2ème sous-vue) – Sly

Répondre

2

Résolu.

Ajouter

self.wantsFullScreenLayout = YES; 

Pour votre sous-classé UIViewController. Dans ce cas, je l'ai ajouté dans viewDidLoad.

Apparemment, si vous ne le définissez pas, le réglage par défaut de la partie supérieure de la vue est adapté à la barre d'état 20px.

Vous avez cette astuce de Fullscreen UIView with Status bar and Navigation Bar overlay on the top

Questions connexes