Estaba un poco confundido al encontrar hoy que lo siguiente no funciona al intentar cambiar el texto que se muestra en un UIButton
.Estableciendo titleLabel para UIButton
// 001
[[[self button] titleLabel] setText:@"Peanuts"];
Creo que sé por qué, pero solo quería confirmar mi pensamiento aquí. 001 establece la propiedad titleLabel text, pero como es UILabel
(una subvista del UIButton
) no hace que la UI se vuelva a dibujar. Esto da como resultado un cambio interno en la propiedad de texto UILabel
, pero lamentablemente no hay cambios visuales en la interfaz de usuario.
// 002
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
parecería que el método setTitle: forState es la forma correcta de ir, tiene la sobrecarga adicional de requerir un estado pero invocar una interfaz de usuario redibujar porque su ser llamado directamente en la UIButton
. Mi pregunta es, ¿002 es la forma correcta de hacer esto, parece que es a menos que esté haciendo algo totalmente incorrecto?
Gracias, muy apreciado. – fuzzygoat