Pregunta

He estado moviendo una vista de alerta un poco más arriba, así que también puedo colocar un teclado en pantalla. Solo hago esto agarrando el marco de la alerta y cambiando la Y después de que ya he mostrado la alerta para que las variables del marco sean legítimas. Esto funciona bien en el simulador, pero cuando hago esto en el hardware, la alerta comienza en la posición correcta pero luego casi inmediatamente salta a su lugar central vertical original. ¿La posición UIAlertView es algo fijo que no se supone que cambie según las pautas de usabilidad o simplemente estoy haciendo algo incorrectamente?

¡Gracias!

¿Fue útil?

Solución

¿Contra qué sistema operativo está intentando esto? Obtuve esto para trabajar tanto en el Simulador OS 3.0 como en el Dispositivo OS 3.0:

UIAlertView * alert = [ [ UIAlertView alloc ] initWithTitle:@"Alert" message:@"Alert" 
                        delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];

alert.transform = CGAffineTransformTranslate( alert.transform, 0.0, 100.0 );

[ alert show ];

CGAffineTransformTranslate toma tres argumentos: la transformación existente, una transformación xy una transformación y. En el ejemplo que utilicé, la vista de alerta apareció 100 píxeles más alta de lo normal. Pruébelo y vea qué sucede.

Además, estoy bastante seguro de que puede modificar el marco antes de mostrar la alerta, ya que probablemente configura el marco de la alerta en init para que sea el centro de toda la pantalla de forma predeterminada.

Otros consejos

Dado que iOS4 moverse por UIAlertViews se vuelve complicado. Me di cuenta de que si agrega una subvista UITextField en UIAlertView, en iOS4 la alerta se mueve hacia arriba para que el teclado no se superponga. Esto no sucede & Lt; iOS4.

También he notado que el marco de la alerta no se inicializa incluso después de que se llama a show, por lo que no hay una forma programática fácil de hacer una CGAffineTransformation relativa. La única solución sería hacer transformaciones condicionales basadas en la versión del sistema operativo.

Para mí, esto parece un subproceso sobre el comportamiento indocumentado de UIAlertViews que está sujeto a cambios en cualquier momento. No creo que Apple quisiera que usemos las alertas para nada más que textos y botones (a pesar de que sus propias aplicaciones rompen esta regla).

Por mi parte, comenzaré a crear mis propias alertas personalizadas para este tipo de escenarios.

No es una alerta destinada a ser modal , es decir: generalmente no realizar cualquier otra entrada del usuario mientras una alerta está activa? Si este es el caso, ¿por qué necesitaría visibilidad del teclado?

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