2010-03-07 12 views
34

Creé una grilla de botones. El siguiente código crea los botones y los muestra, pero no hay texto en el botón. ¿Hay algún ajuste que me falta? (Obj-C respuestas están muy bien, soy bilingüe)Título del título de UIButton del iPhone/iPad que no aparece

RectangleF frame = new RectangleF (X + 3, Y + 3, cellWidth - 2, cellHeight - 2); 
UIButton button = new UIButton (frame); 
button.TitleLabel.Text = "Baha'i"; 
button.TitleLabel.Font = UIFont.FromName ("Helvetica-Bold", 15); 
button.TitleLabel.TextColor = UIColor.Black; 
button.TitleLabel.Frame = frame; 
button.BackgroundColor = UIColor.FromWhiteAlpha(.5f,.5f); 
this.AddSubview (button); 
+0

¿Por qué estabas usando letras mayúsculas rápidas para TitleLabel? Es button.titleLabel, no button. ** T ** itleLabel. –

+0

He detallado una explicación aquí http://stackoverflow.com/a/11417134/1149906 –

Respuesta

128

Creo que quieres setTitle: forState:

[button setTitle:@"Baha'i" forState:UIControlStateNormal] 
+1

Lo que es interesante es que button.titleLable.text = @ "Foo" no siempre hace lo correcto. Debe establecer el título en el UIButton mismo. –

+2

esto es ridículo button.titleLabel.text no funciona, pero [button setTile: .. forState:] funciona desearía que esté configurado por defecto para el estado normal o algo así. ¿Comentarios? – Gmu

+2

@Gmu Han encontrado que es muy difícil de implementar en apple – LolaRun

6

Un UIButton hereda de UIView, por lo que otra manera de añadir texto e imágenes, está para agregar una subvista Ejemplo:

// My Image 
UIImage *buttonImage = [UIImage imageNamed:@"myImage.png"]; 
UIImageView *buttonImageView = [[[UIImageView alloc] 
    initWithFrame:CGRectMake(0, 0, 
    buttonImage.size.width,buttonImage.size.height)] autorelease]; 
[buttonImageView setImage:buttonImage]; 

// My Label 
UILabel* titleLabel = [[[UILabel alloc] 
    initWithFrame:CGRectMake(0, 0, 
    buttonImage.size.width, buttonImage.size.height)] autorelease]; 
titleLabel.text = @"My Text"; 
titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size: 11.0]; 
titleLabel.textColor = [UIColor blackColor]; 
titleLabel.backgroundColor = [UIColor clearColor]; 
titleLabel.textAlignment = UITextAlignmentCenter; 

// Create Button with Image and Label 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button addSubview:buttonImageView]; 
[button addSubview:titleLabel]; 
+0

Un 'UIButton' ya tiene una etiqueta. Por lo general, no es necesario agregar el suyo como se muestra. @ tobias-cohen tiene la respuesta correcta para esta pregunta y la mayoría de los casos. – Fabian

3
UIButton * selectCountryBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; 

[selectCountryBtn setTitle:@"My Title" forState:UIControlStateNormal]; 

Aquí, tengo crear muestra de botón de programación, y luego puse el título de su estado de control normal, usted puede utilizar su propio botón de objeto para establecer la cadena de título, además, también se puede establecer el texto del título para otro control establece por cambio UIControlStateNormal a otros estados requeridos.

0

Para Desarrolladores-

button.setTitle("Your button Name", forState: .Normal) 
Cuestiones relacionadas