Red de conocimiento informático - Material del sitio web - Cómo crear un control personalizado usando el lenguaje Swift

Cómo crear un control personalizado usando el lenguaje Swift

Supongamos que está desarrollando una aplicación que proporciona una búsqueda de una lista de precios de artículos. La aplicación falsa permite a los usuarios filtrar los resultados de búsqueda para obtener artículos dentro de un determinado rango de precios. Puede proporcionar una interfaz de usuario con dos controles UISlider, uno para establecer el precio mínimo y otro para establecer el precio máximo. Sin embargo, este diseño no permite a los usuarios percibir bien el rango de precios. Sería aún mejor si pudiera proporcionar un control deslizante con los rangos de precios más altos y más bajos para buscar en ambos extremos.

Puedes hacer esto creando una subclase de UIView y luego personalizando una vista para el rango de precios visible. Esto está bien para aplicaciones internas, pero si desea trasplantarlo a otros programas, debe dedicar más esfuerzo.

El mejor enfoque es crear un nuevo control de interfaz de usuario que sea lo más general posible para que pueda reutilizarse en cualquier situación adecuada. Ésta es también la esencia de los controles personalizados.

Inicie Xcode, Archivo/Nuevo/Proyecto, seleccione la plantilla iOS/Aplicación/Aplicación de vista única y luego haga clic en Siguiente. En la siguiente interfaz, ingrese CustomSliderExample como nombre del proyecto, luego Nombre de la organización e Identificador de la organización. Luego, asegúrese de que esté seleccionado el idioma Swift, que esté seleccionado el iPhone y que no esté seleccionado Usar datos básicos.

Finalmente, elige un lugar para guardar el proyecto y haz clic en Crear.

En primer lugar, lo que debemos decidir es de qué clase heredar o extender para crear un control personalizado.

Para que se puedan utilizar controles personalizados en su aplicación, su clase debe ser una subclase de UIView.

Si presta atención a la referencia UIKit de Apple, encontrará que muchos controles en el marco, como UILabel y UIWebView, se heredan directamente de UIView. Sin embargo, algunos, como UIButton y UISwitch, se heredan de UIControl.

Nota: Para obtener un diagrama completo de herencia de clases de los componentes de la interfaz de usuario en iOS, consulte la referencia de UIKit Framework.

UIControl implementa el patrón de acción objetivo, que es un mecanismo para notificar a los suscriptores sobre los cambios. UIControl también tiene algunas propiedades relacionadas con el estado del control. En el espacio de personalización de este artículo, se utilizará el modo de acción objetivo, por lo que heredar de UIControl será un muy buen punto de partida.

Haga clic con el botón derecho en CustomSliderExample en el Navegador de proyectos, seleccione Nuevo archivo…, luego seleccione la plantilla iOS/Source/Cocoa Touch Class y haga clic en Siguiente. Asigne un nombre a la clase RangeSlider, ingrese UIControl en el campo Subclase de y asegúrese de que el idioma sea Swift. Luego haga clic en Siguiente y cree la nueva clase en la ubicación de almacenamiento predeterminada.

Aunque programar es muy divertido, es posible que también desees ver tus controles personalizados aparecer en la pantalla lo antes posible. Antes de escribir cualquier código relacionado con un control personalizado, primero debe agregar el control al controlador de vista para poder observar la evolución del control en tiempo real.