2011-11-03 11 views
5

Ho il seguente codice che mi permette di posizionarlo in alto. Voglio che appaia in fondo.Come faccio a far apparire il mio banner iAd in basso sullo schermo?

adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.frame = CGRectOffset(adView.frame, 0, -50); 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
[self.view addSubview:adView]; 

Qualsiasi assistenza sarà apprezzata.

risposta

19

[email protected] larsacus sottolineato questo è per 4.2+:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
CGRect adFrame = adView.frame; 
adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height; 
adView.frame = adFrame; 
[self.view addSubview:adView]; 

Shown working in simulator

+1

Si noti che questo funzionerà solo per iOS 4.2+ poiché 'ADBannerContentSizeIdentifierPortrait' e' ADBannerContentSizeIdentifierLandscape' sono stati aggiunti in 4.2. Solo un avviso. – larsacus

+0

grazie per la risposta dettagliata Chris – jini

+0

@jini Chris non ha risposto alla domanda –

0

Questo è ciò che mi ha aiutato a spostare la vista verso il basso:

adFrame.origin.y = self.view.frame.size.height;

adView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

+0

Questo sposterà la visualizzazione dell'annuncio sotto lo schermo in molti casi. Sembra che il tuo problema abbia più a che fare con la rotazione dello schermo o stai utilizzando il generatore di interfacce e le viste non sono state configurate correttamente. Stai usando un XIB per il tuo controller di visualizzazione? –

+0

Oh! Hai ragione, ho notato che ci sono più istanze, ma non l'ho ancora risolto. Non ho alcun XIB, questo è un vecchio codice e lo sto aggiornando. I punti di vista NON sono impostati correttamente ed è un disastro, e non voglio passare molto tempo su questo. La mia app ha solo un orientamento, quindi non c'è rotazione, tutto ciò di cui ho bisogno è impostarlo in fondo. Ho incollato l'intero codice (delle pubblicità) qui, per evitare di fare la stessa domanda per diverse volte, ma posso ripubblicare se necessario: http://pastebin.com/k73cyL7R – Neeku

+0

Non sei sicuro di come hai riconosciuto che ha fatto molte istanze, ma il problema era che lo avevo nel metodo 'loadView' che chiamava il metodo' createAdView' prima che la vista principale fosse creato. Utilizzando un timer il problema è risolto. – Neeku

2

La mia prima risposta su SO :)

Perché non utilizzare la proprietà 'center' di adView? Se le dimensioni della vostra vista principale sono viewWidth e viewHeight:

//at the bottom of view,centered 
adView.center=CGPointMake(viewWidth/2, viewHeight-adView.frame.size.height); 

//at the top, right corner ;) 
adView.center=CGPointMake(viewWidth-adView.frame.size.width/2, adView.frame.size.height); 

Acclamazioni

+0

Ho provato qualcosa di simile ma non sono sicuro che Apple accetterà di forzare la dimensione a qualcosa di diverso da quello predefinito. Qualcuno ha esperienza con il caricamento di un'app con un banner iAd ridimensionato? – Alexandros

0

Utilizzando storyboard, quindi, ignorare che lo standard iAd Banner View non raggiunge i bordi dello schermo. Imposta il banner iAd in modo che sia centrato, quindi spostalo il più vicino possibile in basso. Nessuna altra impostazione di larghezza (nessuna impostazione iniziale o finale)

Il mio sembrava ok con 8 pixel dal fondo del superview, ma sono andato con - pixel tra il banner iAd e la vista UIController.

Problemi correlati