Pregunta

Esto es probablemente algo bastante básico. Estoy tratando de implementar Adwhirl en mi aplicación, que he hecho con éxito para la parte técnica. Cuando carga mi aplicación, agrega cargas y luego se desliza hacia abajo desde la parte superior para sentarme en la parte inferior de la pantalla. Sin embargo, cuando giro el dispositivo, el anuncio utiliza ubicaciones "precisas" y se mueve fuera de la pantalla. Cuando el anuncio se vuelve a cargar (se actualiza cada 15 segundos), el anuncio se mueve hasta la parte inferior de la pantalla de la ventana del paisaje. Una vez más, al girar del paisaje, el anuncio se alinea en el medio de la página verticalmente (cubriendo contenido) hasta que se carga un nuevo anuncio. He adjuntado una serie de fotos, en una serie que muestra lo que sucede, todo en orden y tomado al menos 10 segundos de diferencia (mostrando anuncio de prueba de "Hola").

Mi código del archivo de implementación se incluye al final de esta publicación; lo siento por no usar el formato de código, simplemente no quería poner espacios frente a todo el bloque, y creo que todo es relativamente relativamente relevante. También está disponible en el contenedor de pasta: http://pastebin.com/mzavbj2l

Sam

Lo siento, no me permitió subir imágenes. Por favor envíeme un PM para obtener imágenes.

¿Fue útil?

Solución 2

Gracias por su ayuda, estaba cerca de una solución (¡solo lo hizo funcionar esta noche, en su mayoría se había olvidado de hacerlo!). Después de hacerte cambios en mi .h, estaba tratando de llamar [adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]. Esto siguió devolviendo errores, a pesar de que se definió en la clase Adwhirlview. Como solución, agregué -(void) adWhirlDidReceiveAd:(AdWhirlView *)adView y luego llamado cada vez que el marco giraba [self adWhirlDidReceiveAd:(AdWhirlView *)adView];.

Gracias de nuevo, muy contento de que finalmente esté funcionando.

Sam

Otros consejos

Recomiendo manejar la rotación en el willRotateToInterfaceOrientation:duration: método o el didRotateFromInterfaceOrientation:method. Podrá determinar cuál es su nueva orientación, el nuevo tamaño de su vista, y luego cambiar el marco de su vista Adhirl a la nueva ubicación.

Sin embargo, después de verse un poco más de cerca, parece que es posible que necesite hacer *adView una variable declarada en tu .h Archivo para que pueda acceder a él desde los métodos de rotación.

Una vez que hagas eso, puedes configurar tu nuevo marco como lo hizo en el 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];

Idealmente, movería este código a su propio método para que pueda llamarlo desde donde desee en su código de controlador de vista (por ejemplo, viewDidLoad y las funciones de rotación (s)).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top