2012-01-16 9 views
5

Tengo un elemento que necesita comportarse como UIButton pero tiene varias (3) etiquetas de texto visibles a la vez y varios UIImages en el mismo cuadro delimitador. Es realmente una vista con muchos otros UIViews y etiquetas que deben verse y actuar como un botón, pero con una colocación más personalizada de estos elementos que el UIButton estándar.Subclase UIButton o heredar de UIControl?

¿Es mejor heredar de UIButton para lograr esto o UIControl es el que hereda?

Cuando se toca el elemento, quiero imitar todos los efectos de resaltado (si es UILabel, mostrar el color del texto resaltado, etc.) también.

Respuesta

2

Siempre y cuando no importe qué parte del contenido de su botón se toca para activar sus funciones, puede componer un UIButton junto con todas las UILabel, UIImageViews que necesita.

Puede heredar fácilmente desde UIView, colocar todo lo anterior dentro y colocar su UIButton transparente encima de todo para obtener los eventos que necesita (configurándose como el objetivo para ese botón e implementando algún delegado para notificar sobre la selección) .

+0

Necesito asegurarme de que todos los elementos secundarios muestran los colores resaltados correctos cuando se produce el evento tap. –

+0

Puede solicitarle a su UIButton que notifique en 'UIControlEventTouchDown' y' UIControlEventTouchUpInside' para saber cuándo debe resaltarlo y manejarlo en hora. –

+6

En "coloque su UIButton transparente" este es un enfoque terrible porque ahora no obtiene accesibilidad de la caja. Y probablemente ni siquiera considerarías arreglar eso. No superponga los botones encima de otras cosas para obtener este efecto. – Daniel

Cuestiones relacionadas