Tengo un UIButton que, cuando se selecciona, no debería cambiar de estado cuando se toca. El comportamiento predeterminado es que esté en UIControlStateHighlighted mientras se toca, y esto me está enojando.
Sugerencias?
Su botón debe estar buttonType
configurado en Personalizado.
En IB puede desmarcar "Resaltar ajusta imagen".
Programáticamente puedes usar theButton.adjustsImageWhenHighlighted = NO;
Opciones similares están disponibles para el estado "deshabilitado" también.
Además de la respuesta anterior de desmarcar "resaltar ajusta imagen" en IB, asegúrese de que el tipo de botón esté configurado como PERSONALIZADO.
fuente
Esto funcionará para usted:
La tercera línea es el truco aquí ...
Esto funciona igual para configurar imagen / backgroundImage
fuente
adjustsImageWhenHighlighted
propiedad deUIButton
parece afectar solo a la imagen de fondo.fuente
es igualmente útil para tener su propia apariencia de un botón deshabilitado.
fuente
Dependiendo de los cambios del estado predeterminado al botón resaltado, puede llamar a un par de métodos para configurarlos a lo que necesita. Entonces, si la imagen cambia, puedes hacer
Si el texto cambia, puedes hacerlo
otras funciones similares:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
fuente
OK, aquí hay una solución fácil si esto funciona para usted, después de una semana de golpearme la cabeza con esto finalmente se me ocurrió establecer resaltado = NO para la primera línea del método IBAction para TouchUpInside o TouchDown, o lo que sea que funcione. Para mí estuvo bien en TouchUpInside.
fuente
Para el desarrollador Swifty:
fuente
Swift 3+
fuente
solo dos cosas:
fuente
Tuve un problema similar y descubrí que "desmarcar" borra el contenido gráfico en el generador de interfaces solucionó mi problema
fuente
haga que su botón Escriba - "Personalizado" y desactive - Resalte Ajustar imagen y ya está.
fuente
evite establecer el salto de línea de UIButton en Clip , utilice en su lugar el Truncate Middle estándar
fuente