Entonces estoy tratando de actualizar el texto en un UIButton cuando hago clic en él. Estoy usando la siguiente línea para cambiar el texto:
calibrationButton.titleLabel.text = @"Calibration";
He verificado que el texto está cambiando, pero cuando ejecuto la aplicación y hago clic en el botón, cambia a "Calibración" durante una fracción de segundo y luego vuelve a su valor predeterminado. Alguna idea de por qué esto esta pasando? ¿Hay algún tipo de función de actualización a la que deba llamar?
objective-c
ios
xcode
event-handling
uibutton
Julián Coltea
fuente
fuente
Respuestas:
Al diseñar sus subvistas, un UIButton establecerá el valor de texto de su titleLabel utilizando sus propios valores de título, de modo que pueda configurar hasta cuatro cadenas diferentes para los cuatro estados (normal, resaltado, seleccionado, deshabilitado).
Debido a esta característica, la configuración del texto de titleLabel directamente no persistirá y se restablecerá con el botón cuando presente sus subvistas.
Esto es lo que debe hacer para cambiar el texto del título del estado de un botón.
fuente
button.titleLabel
, verá que titleLabel es una propiedad de solo lectura, por lo que cualquiera de las propiedades de una propiedad de solo lectura también es de solo lectura. El uso de la notación de puntos para editarlos no funcionará, por lo que necesita métodos explícitos para editarlos. Esto tiene sentido al menos para mí.Although this property is read-only, its own properties are read/write. Use these properties primarily to configure the text of the button. For example:
Para configurar el texto del botón, utilice el siguiente método:
Consulte
UIButton
la referencia de la clase para obtener más detalles ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.htmlO en Swift 3:
fuente
programáticamente puede establecer el título del botón como se muestra a continuación:
también puede establecer la propiedad del título del botón desde el guión gráfico.
fuente
No es un gran problema, y posiblemente sea obvio, pero hay varios estados disponibles para los botones. Si proporciona el "incorrecto", no verá el cambio de texto como desea.
Noté que mi botón no mostraba el texto que agregué, usando los métodos que se muestran aquí. Consulte este enlace para asegurarse de que está proporcionando el UIControlState que desea.
¿Cuál es la diferencia entre UIControlStateHighlight y UIControlStateSelected?
fuente
Para Swift 3.0
fuente
Para Swift 2.0:
fuente
Si no desea establecer el título para todos los estados, simplemente configúrelo para el estado normal, ya que el título para los estados no configurados será el título predeterminado del estado normal.
fuente