Estamos creando una intensa aplicación que necesita para tener algo que actúa más bien similar a la de un UIAlertView, pero no queremos que se vea como un sistema de diálogo, queremos usar nuestros propios gráficos. Tengo una gran parte del trabajo hecho, pero hay un par de inconvenientes que he encontrado:

  1. ¿Cómo puedo hacer que el UIView aparecen por encima de la barra de estado (para que yo pueda oscurecer, como un UIAlertView hace)? Es esto posible? Lo he añadido a la ventana, pero todavía se muestra debajo de la barra de estado.

  2. ¿Cómo puedo mostrar es parcialmente transparente, pero tiene el texto todavía completamente opaco? Quiero que se muestra similar a la de un UIAlertView en que debe ser transparente, pero si puedo configurar el alfa para .8, que también disminuye el alfa de subvistas. Si yo sólo disminuir el alfa de la imagen de fondo, los botones aparecen opacos. Si quiero disminuir el alfa de la imagen de fondo y los botones, los botones no se ven como que están incrustados en la imagen de fondo. Me gustaría mucho para no tener que crear una imagen diferente para cada disposición de botones incrustados

Edición: todavía no he encontrado una solución a la barra de estado de la cuestión, pero me he dado cuenta de que una norma UIAlertView aparece en su propia UIWindow, y cuando he investigado que, he encontrado la windowLevel propiedad:

const UIWindowLevel UIWindowLevelNormal;
const UIWindowLevel UIWindowLevelAlert;
const UIWindowLevel UIWindowLevelStatusBar;

Usando mi propio UIWindow con UIWindowLevelAlert todavía no aparecen por encima de la barra de estado. No probé UIWindowLevelStatusBar.

  • Puede ser que sea demasiado tarde, pero usted puede ser capaz de aprovechar UIAlertView en lugar de escribir su propia clase. Hice algunas subvista de minería de datos para tener un lío con los botones y tal, pero yo no recomiendo hacer lo mismo. Sin embargo, usted puede insertar subvistas y también cambiar el marco de la UIAlertView, tal vez eso va a satisfacer sus necesidades en su lugar? UIAlertview parece tener un montón de comportamiento y no quiero duplicar él, personalmente.
InformationsquelleAutor Ed Marty | 2009-11-19

6 Comentarios

  1. 0

    ¿Cómo puedo hacer que el UIView aparecen por encima de la barra de estado (para que yo pueda oscurecer, como un UIAlertView hace)? Es esto posible?

    No creo que Apple lo que hace que este disponible a un no-UIAlertView subclase de UIView.

    UIAlertView es una subclase de UIView. Has probado a crear subclases de UIAlertView y primordial -drawRect: con su propio código de dibujo?

    • Yo acepte esta respuesta no porque subclases y primordial drawRect: a mí me funciona (no. He hecho declaraciones específicas que no podemos utilizar esa clase), sino porque me he resignado al hecho de que Apple no hace que este disponible.
    • Usted podría considerar la presentación de una solicitud de función en bugreport.apple.com
  2. 5

    Usted necesita para crear una nueva Ventana donde usted puede poner su vista de alerta:

    UIWindow *alertWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //you must release the window somewhere, when you do not need it anymore
    alertWindow.windowLevel = UIWindowLevelAlert; //puts it above the status bar
    alertWindow.backgroundColor = [UIColor clearColor];
    UIViewController *alertVC = [[[YourAlertViewController alloc] init] autorelease];
    [alertWindow setRootViewController:alertVC];
    [alertWindow setHidden:NO];
  3. 0

    Si el comportamiento predeterminado de UIAlertView que funciona para usted, me gustaría sugerir cambiar la apariencia predeterminada del cuadro de diálogo. Por ejemplo, puedes usar el código de ejemplo de la esta discusión y proporcionar su propia imagen.

    • Necesitamos algo un poco diferente, así que necesitamos para hacer nuestro propio.
  4. 0

    Por la opacidad de la cuestión: ¿ha considerado la incrustación de botón de gráficos en el fondo de la imagen, y hacer que los controles de botón de ellos transparente, cambiar la imagen de fondo cada vez que un botón es presionado o liberado?

    • Si lees el final de mi pregunta, fíjate que dije «me gustaría mucho para no tener que crear una imagen diferente para cada disposición de botones incrustados»
    • – Ah lo siento, no cojo un poco. Tal vez quedarse en blanco, las partes transparentes de la imagen de fondo que se alinean con los botones?
    • de nuevo, cada vez que la alineación de los botones de cambio, tendría que tener una imagen de fondo diferente.

Dejar respuesta

Please enter your comment!
Please enter your name here