Tengo un requisito típico en el que necesito mantener un botón en estado resaltado después de presionarlo. Necesito realizar una tarea que debería funcionar solo cuando un botón está en estado resaltado. En realidad estoy configurando un estado de botón para resaltar programáticamente.Cómo configurar el estado de UIButton que se resaltará después de presionarlo
[sender setHighlighted:YES];
Y una vez que el botón se encuentra en estado resaltado que necesito para realizar otra acción.
- (IBAction)changeState: (UIButton*)sender
{
if (sender.highlighted == YES)
{
[self performSomeAtion:sender];
}
}
Pero, para mi horror, cada vez que se presiona cualquier botón, la condición anterior se está convirtiendo en realidad y la acción se está realizando en varias ocasiones. ¿Hay alguna forma en la que pueda mantener el estado de un UIButton resaltado después de presionarlo?
EDIT - En realidad, necesito realizar 3 acciones diferentes para 3 estados diferentes del botón. Ya estoy haciendo uso del estado seleccionado y el estado normal. Ahora, necesito hacer uso del estado resaltado.
Puede establecer una variable BOOL que actualizará a TRUE una vez que se ha realizado la acción. –
pero necesito establecer el botón en estado resaltado y debe permanecer en el estado resaltado a menos que lo cambie de nuevo. –
Para ios 7 solo, debe considerar establecer la imagen renderMode en UIImageRenderingModeAlwaysTemplate y luego usar el color Tint para representar varios estados . ver http://stackoverflow.com/questions/19802982/apply-tintcolor-to-uiimage –