2011-07-28 16 views
9

Al ver que el azul no va con la interfaz de mi interfaz de usuario, me pregunto si hay una forma de cambiar el color de la vista de vista, o usar una imagen. Con todos los botones, 'despedir' etc todavía allíUIAlertView personalizado?

Gracias

+0

que podría presentar una visión modal/popover tal vez- sólo un pensamiento? hacer que parezca una alerta y hacer un botón de descartar que lo desestime? –

+1

¿Funcionaría? Todavía es azul. https://github.com/kyoshikawa/ZPopoverController – Sum

Respuesta

0

Usted puede ir a través de sus subvistas y cambiar lo que hay que cambiar, o subclase. Debido UIAlertView hereda de UIView puede utilizar:

myAlertView.subViews 

y modificar los puntos de vista o UIAlertView subclase para crear su AlertView personalizado. Aquí hay un artículo muy bueno sobre cómo subligir UIAlertView para obtener el diseño/color que desee.

Subclassing UIAlertView

Básicamente lo desea anular este método es:

- (void) drawRect:(CGRect)rect 

Espero que ayude.

1

Puede intentar presentar un Controlador de vista modal con un fondo transparente.

ModalViewController *popupController = [[ModalViewController alloc] initWithNibName:@"ModalViewController" bundle:nil]; 
[self presentModalViewController:popupController animated:NO]; 

Algo como esto para el ModalView (http://stackoverflow.com/questions/849458/transparent-modal-view-on-navigation-controller)

De esta manera se puede crear una alerta personalizada , pero en realidad es una vista modal que puede personalizar

+7

FYI ten cuidado con este enfoque: presentar un controlador de vista de forma modal, incluso con un fondo transparente, hará que la vista detrás de él desaparezca, dejando un fondo blanco. Probablemente no sea el efecto que estás buscando. – kris

20

La buena gente de CodeCropper acaba de publicar un control de código abierto que le permite crear vistas de alerta personalizadas. Es impresionante.

enter image description here

https://github.com/gpambrozio/BlockAlertsAnd-ActionSheets

+0

El enlace está roto –

+0

@Qamar: Gracias por el aviso. El enlace ha sido actualizado. –

+1

El problema con este proyecto es que usa ARC. Obtendrá problemas de compilación de izquierda a derecha si su proyecto no utiliza ARC. No entiendo por qué las personas usan ARC? –

0

puede utilizar un UIView en lugar de uialertview y puede personalizar fácilmente UIView de acuerdo a sus necesidades

0

usted podría utilizar CODialog. Es totalmente capaz de estilo y configurable.

0

Subclases UIAlertView no es una opción, esta clase no está destinada a ser subclasificada y hacerlo podría ser una razón para el rechazo de la aplicación.

En cambio, es posible que trate de pasar por subvistas todo de vista de alerta o crear su propia clase

En caso de que se va a crear su propia clase, aquí está un ejemplo de cómo UIAlertView falsa:

http://iosdevtricks.blogspot.com/2013/04/creating-custom-alert-view-for-iphone.html

+0

tiene razón, esta es una cita de Apple "La clase UIAlertView está destinada a ser tal como está y no admite subclases. La jerarquía de vista para esta clase es privada y no debe modificarse". Así que la creación de una nueva clase con una funcionalidad similar parece ser la única opción – marika

0

Si está buscando alerta personalizada ver, entonces podría ayudar.

https://github.com/Pradeepkn/PKCustomAlertView/ 

Espero que ayude a alguien.

No es necesario configurar delegado.Obtendrá devuelva la llamada una vez que la acción se complete con el mismo método. Enjoy :)

Custom Alert view

Table Alert view