Quiero crear un componente reutilizable (un control personalizado) para el iPhone. Consiste en varios controles estándar predispuestos en una Vista, y luego en algunos códigos asociados. Mis objetivos son:iPhone: crea un componente reutilizable (control) que tiene algunas piezas de Interface Builder y un código
- Quiero ser capaz de utilizar el Interface Builder para diseñar los subvistas en mi control personalizado;
- Quiero de alguna manera empaquetar todo para que luego pueda arrastrar y soltar fácilmente el componente personalizado resultante en otras vistas, sin tener que volver a conectar manualmente varias salidas, etc. (Un poco de cableado manual está bien, simplemente no quiero hacer toneladas y toneladas de esto.)
Permítanme ser más concreto, y decirle específicamente lo que mi control se supone que debe hacer. En mi aplicación, a veces necesito acceder a un servicio web para validar los datos que el usuario ingresó. Mientras espero una respuesta del servicio web, quiero mostrar un spinner (un indicador de actividad). Si los servicios web responden con un código de éxito, quiero mostrar una marca de verificación de "éxito". Si el servicio web responde con un código de error, quiero mostrar un ícono de error y un mensaje de error.
La forma de un solo uso para hacer esto es bastante sencilla: simplemente creo una UIView que contiene UIActivityIndicatorView, dos UIImages (uno para el icono de éxito y otro para el icono de error) y UILabel para el mensaje de error. Aquí hay una captura de pantalla, con las correspondientes partes marcadas en rojo:
luego de cable hasta las piezas para puntos de venta, y me puso un poco de código en mi controlador.
Pero, ¿cómo empaqueté esas piezas, el código y la pequeña colección de vistas, para poder reutilizarlas? Aquí hay algunas cosas que encontré que me consigue a medias, pero no son tan grandes:
- puedo arrastrar la colección de puntos de vista y controles en la sección de objetos personalizados de la Biblioteca; luego, más tarde, puedo arrastrarlos a otras vistas. Pero (a) olvida qué imágenes se asociaron con los dos UIImages, (b) hay una gran cantidad de cableado manual de cuatro o cinco enchufes, y (c) lo más importante, esto no lleva el código. (¿Quizás haya una manera fácil de conectar el código?)
- Creo que podría crear un IBPlugin; no estoy seguro si eso ayudaría, y parece que hay mucho trabajo, y tampoco me queda del todo claro si IBPlugins funciona para el desarrollo de iPhone.
- Pensé, "Hmm, hay un código asociado a esto - que huele como un controlador", así que traté de crear un controlador personalizado (por ejemplo,
WebServiceValidatorController
) con el archivo XIB asociado. Eso en realidad parece muy prometedor, pero en ese momento no puedo entender cómo, en Interface Builder, arrastrar este componente a otras vistas. ElWebServiceValidatorController
es un controlador, no una vista, por lo que puedo arrastrarlo a una ventana de documento, pero no a una vista.
Tengo la sensación de que me falta algo obvio ...
He encontrado este enlace para proporcionar buena información: http://www.bartlettpublishing.com/site/bartpub/blog/3/entry/327 –