2012-05-28 20 views
6

Tengo una aplicación para iPhone y en un clic de botón debería abrir una vista de alerta personalizada mostrando algo de texto y una "X" en la ventana superior derecha como en lightbox en cualquier aplicación web.Cómo crear un UIAlertView personalizado en la aplicación para iphone

+0

qué quiere personalizar los botones de uialertview? – Saad

+0

sí, quiero personalizarlos para que queden a un lado del borde y se vean como popview en los sitios web – james

+0

¿Cuál es su necesidad? No está claro por su pregunta. ¿Desea abrir una vista en el botón? Haga clic con un botón Cerrar en la esquina superior izquierda .entonces no tiene que usar alertview.just use una vista con su diseño y la oculta cuando la vista se está cargando y en el botón haga clic para mostrar la vista ... eso es coool – hacker

Respuesta

0
- (void)willPresentAlertView:(UIAlertView *)alertView; 
- (void)didPresentAlertView:(UIAlertView *)alertView; 

en cualquiera de los mensajes anteriores, compruebe las subvistas y su clase y cambie los valores que desee. vea este código de muestra para UIActionSheet. busca clases de todos los componentes usando ns log y personaliza tu clase de deseo. Este es uiactionsheet code

for (UIView* view in [actionSheet subviews]) 
    { 
     NSLog(@"%@",[view class]); 
     if ([[[view class] description] isEqualToString:@"UIAlertButton"] && [view respondsToSelector:@selector(setAlpha:)]) 
     { 
      [view setAlpha:2.0]; 
      [view setOpaque:YES]; 
      if ([view respondsToSelector:@selector(title)]) 
      { 
       NSString* title = [view performSelector:@selector(title)]; 
       if ([title isEqualToString:@"Cancel"] && [view respondsToSelector:@selector(setBackgroundImage:forState:)] && [view respondsToSelector:@selector(setFrame:)] && [view respondsToSelector:@selector(setFrame:)] && [view respondsToSelector:@selector(setTitleColor:forState:)]) 
       { 

        [view setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
        [view setBackgroundImage:[UIImage imageNamed:@"btn-cancel.png"] forState:UIControlStateNormal]; 
        [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y+10, view.frame.size.width,view.frame.size.height)]; 

       } 
      } 
     } 
    } 
+0

no lo conseguí ¿me puede explicar más – james

+0

mirar. ios tiene capas en cada vista. tienes que buscar cada capa en la pantalla y luego verificar qué clase tiene. p.ej. una alerta tiene una etiqueta, un botón, y un botón además tiene una etiqueta, etc. cuando haya encontrado su clase de destino como botón, entonces puede cambiar su comportamiento – Saad

+0

dígame si lo obtuvo – Saad

1

Si desea implementar Personalizar alerta Ver entonces usted debe este código de ejemplo que tienen alerta muy atractivas vistas colección con la ayuda de ViewController. Prueba este ejemplo Enlace Código https://github.com/eaigner/CODialog

Cuestiones relacionadas