2011-01-19 13 views
11

Parece que siempre estoy luchando con UIAlertView para que haga lo que quiero. Estoy a cabo la pelea - ¿existen reemplazos UIAlertView robustos con las siguientes características, o voy a tener que escribir mi propio ?:UIAlertView reemplazo

  • posibilidad de personalizar el tamaño de alerta-view/posición
  • capacidad de cambiar el diseño de los botones (apilados frente de lado a lado) la capacidad
  • a solicitar a los usuarios a través de la entrada UITextField o UITextView
  • cambio de tamaño/comportamiento reposicionamiento cuando el teclado aparece
  • capacidad de tener una UITextView de desplazamiento de texto
  • copia de píxel perfecto de UIAlertView para pantalla básica
  • idealmente interfaz compatible con UIAlertView - es decir, se trata de un drop-in-reemplazo.

He encontrado algunas publicaciones en blog y stackoverflow que implementan personalizaciones en un UIAlertView; esto NO es lo que quiero. Tampoco quiero una guía sobre cómo implementar un AlertView personalizado. Sé cómo, solo quiero encontrar uno que ya esté mantenido por la comunidad. Quiero un reemplazo ground-up que sea seguro para la presentación en App Store y a prueba del futuro contra los cambios de UIAlertView (sí, me quemaron ...)

Responda con comentarios si tiene sugerencias para otras funciones deseables.

+0

@skaffman: ¿cómo es que eliminaste la etiqueta de iphone-ui? – TomSwift

+3

Tal vez porque en realidad no se usa una etiqueta (0 preguntas) y, por lo tanto, no agrega nada. –

Respuesta

17

Respondiendo a mi propia pregunta.

He buscado alto y bajo para un proyecto UIAlertView prefabricado que ofrecía las características que estaba buscando. Estoy seguro de que existen. He visto aplicaciones con excelentes alertas. Sus autores no deben compartir, lo cual está totalmente bien, lo entiendo.

Así que escribí el mío. TSAlertView es una implementación básica de una vista de alerta modal compatible con la interfaz con UIAlertView. En términos de apariencia visual, si bien no es una copia perfecta de píxeles, se acerca mucho. Las características que ofrece son básicamente lo que he descrito en la pregunta original:

  • posibilidad de configurar la pantalla-width y max-altura de la vista de alertas. Esto me permite tener alertas más atractivas en el iPad.

  • posibilidad de especificar el diseño de los botones (apilados uno al lado del otro), incluso si solo hay dos botones. Esto siempre me molestaba con UIAlertView: si tenía dos botones, siempre se colocaban uno al lado del otro. Un gran problema si el texto del botón no encajaba.

  • capacidad para solicitar la entrada de los usuarios a través de un UITextField. De vez en cuando, solo necesita una forma rápida y sucia para solicitar al usuario que ingrese algo.

  • comportamiento de cambio de tamaño/reposicionamiento cuando aparece el teclado. (ocurre cuando se solicita entrada de usuario)

  • posibilidad de tener un UITextView para desplazar el texto.Puede establecer explícitamente esta opción en lugar de confiar en UIAlertView para intercambiar en un UITextView por texto largo.

  • copia casi nula de UIAlertView para pantalla básica.

  • apoyo para los fondos personalizados

  • es la interfaz compatible con UIAlertView - es decir, es un drop-in-reemplazo.

He utilizado un puñado de grandes proyectos de código abierto en mi código en el último año. Mis dos favoritos son MBProgressHUD y MGSplitViewController, cada uno alojado en github. Decidí compartir TSAlertView de la misma manera.

https://github.com/TomSwift/TSAlertView

La implementación inicial seguramente tiene algunos errores. Todavía no lo he usado en un proyecto de envío, pero lo estoy usando en mi proyecto actual para completarlo en unas pocas semanas. Si quieres intentar usarlo tú mismo, por favor siéntete libre. Publique cualquier problema en github, o mejor aún, envíe una solución.

¡Disfrútalo!

Estas son algunas capturas de pantalla que muestran 1) 2 botones apilados 2) Capacidad entrada 3) establecer

showing 2 stacked buttons hereshowing input capabilityshowing wide-layout

+1

Hola TomSwift, gracias por ese gran proyecto. Estaba a punto de comenzar un proyecto así hasta que llegue su TSAlertView. Realmente genial. Ahora lo estoy usando en una de mis aplicaciones. ;-) –

+0

Esto es asombroso. Gracias por un reemplazo de código abierto excelente y fácil de usar para algo más difícil de lo que debe ser en iOS. – buildsucceeded

0

Echa un vistazo a Smart Alert View, es de código abierto.

+0

gracias por el enlace. Me asusté de este cuando escaneé el código y encontré esto: - (void) ResizeAlertView: (UIAlertView *) alertView { \t CGFloat height = view_.frame.size.height + 110; \t \t alertView.frame = CGRectMake (15.0f, (460-height)/2, 300.0f, height); } – TomSwift

+0

también, prefiero algo que no se deriva de UIAlertView. – TomSwift

+0

Vas a tener que construir tu propia implementación de UIAlertView (que es más una pesadilla que personalizar una), o simplemente personalizar una, no es tan difícil como cabría esperar. – WrightsCS