Quiero hacer un UIButton con tipo UIButtonTypeCustom (para la forma). Quiero asignar el título usando button.titleLabel porque necesito especificar la fuente. El siguiente código parece que debería funcionar, pero no lo hace, no aparece ninguna etiqueta, punto.iOS: UIButton titleLabel: ¿hace algo?
UIImage *editButtonImage = [UIImage imageNamed: @"editButton.png"];
float width = editButtonImage.size.width;
float height = editButtonImage.size.height;
UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
editButton.frame = CGRectMake(0, 0, width, height);
[editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
editButton.adjustsImageWhenHighlighted = YES;
editButton.titleLabel.text = @"Edit";
editButton.titleLabel.textColor = [UIColor whiteColor];
editButton.titleLabel.textAlignment = UITextAlignmentCenter;
editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
[self.view addSubview: editButton];
Todo el mundo siempre dice que el uso setTitle: forState: pero que le da un tipo de letra que no me gusta. El método titleLabel NO está en desuso, debería funcionar.
Me he topado con esto varias veces antes y siempre lo he solucionado, pero me gustaría averiguarlo. ¿Algunas ideas?
Por lo tanto, lo único que no se puede establecer con titleLabel es el valor de texto real. Eso me parece un poco extraño, pero está bien. – Amagrammer
Es un poco contradictorio al principio. Aparentemente, establecer la propiedad 'text' de la etiqueta sería simplemente un atajo para llamar a' -setTitle: forState', pero no es así. – LucasTizma
De manera similar, parece que no puede establecer directamente la propiedad textColor de titleLabel, pero tiene que usar el método setTitleColor: forState :. Gracias por mencionar esto, porque no está en la documentación. – arlomedia