2011-11-03 16 views
5

Tengo el siguiente código que me permite colocarlo en la parte superior. Quiero que aparezca en la parte inferior.¿Cómo hago que mi banner de iAd aparezca en la parte inferior de la pantalla?

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

Cualquier ayuda será apreciada.

Respuesta

19

Update- @ larsacus señaló que esto es para 4.2 y versiones posteriores:

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

Tenga en cuenta que esto solo funcionará para iOS 4.2+ ya que 'ADBannerContentSizeIdentifierPortrait' y' ADBannerContentSizeIdentifierLandscape' se agregaron en 4.2. Solo un aviso. – larsacus

+0

gracias por la respuesta detallada Chris – jini

+0

@jini Chris no respondió la pregunta –

0

Esto es lo que me ayudó a mover la vista a la parte inferior:

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

adView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

+0

Esto empujará la vista de anuncio debajo de la pantalla en muchos casos. Parece que su problema tenía más que ver con la rotación de la pantalla o con el generador de interfaz y las vistas no estaban configuradas correctamente. ¿Estás usando un XIB para tu controlador de vista? –

+0

¡Oh! Tienes razón, me di cuenta de que hay más de una instancia, pero aún no la he corregido. No tengo ningún XIB, este es un código antiguo y lo estoy actualizando. Las vistas NO están configuradas correctamente y es un desastre, y no quiero perder mucho tiempo en esto. Mi aplicación viene en una sola orientación, por lo que no hay rotación, todo lo que necesito es establecerlo en la parte inferior. Pegué todo el código (de los anuncios) aquí, para evitar hacer la misma pregunta varias veces, pero puedo volver a publicar si es necesario: http://pastebin.com/k73cyL7R – Neeku

+0

No estoy seguro de cómo lo reconoció que hizo muchas instancias, pero el problema fue que lo tenía en el método 'loadView' que llamaba al método' createAdView' antes de que la vista principal fuera creado. Usando un temporizador el problema está resuelto. – Neeku

2

Mi primera respuesta en SO :)

¿Por qué no utilizar la propiedad 'center' de adView? Si las dimensiones de su vista principal son viewWidth y 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); 

Saludos

+0

Intenté algo similar, pero no estoy seguro si Apple aceptará forzar el tamaño a algo diferente al predeterminado. ¿Alguien tiene experiencia con la carga de una aplicación con un banner iAd redimensionado? – Alexandros

0

El uso de guiones gráficos, a continuación, pasar por alto que el estándar iAd Banner Ver no llega a los bordes de la pantalla. Establezca el banner de iAd para que esté centrado, luego muévalo lo más cerca posible de la parte inferior. Ninguna otra configuración de ancho (sin configuración anterior o posterior)

La mina se veía bien con 8 píxeles desde la parte inferior de la supervista, pero fui con - píxeles entre el banner de iAd y la vista de UIController.

Cuestiones relacionadas