2010-03-07 4 views
34

Я создал сетку кнопок. Следующий код создает кнопки и отображает их, но на кнопке нет текста. Есть ли у меня настройки? (Ответы Obj-C прекрасны, я би-язычная)iPhone/iPad UIButton TitleLabel текст не отображается

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

Почему вы использованием заглавных букв titleLabel? Это кнопка button.titleLabel, а не кнопка. ** T ** itleLabel. –

+0

Я подробно объяснил здесь http://stackoverflow.com/a/11417134/1149906 –

ответ

128

Я думаю, что вы хотите setTitle: forState:

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

Интересно, что button.titleLable.text = @ "Foo" не всегда поступает правильно. Вы должны установить заголовок в самой UIButton. –

+2

Это смешно button.titleLabel.text не работает, но [кнопка setTile: .. forState:] работает, по желанию, устанавливается по умолчанию для нормального состояния или чего-то еще. Комментарии? – Gmu

+2

@Gmu Им было очень сложно реализовать на яблоке – LolaRun

6

UIButton наследует от UIView, так и другой способ, чтобы добавить текст и изображения, является для добавления subview. Пример:

// 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

У UIButton уже есть ярлык. Добавление вашего собственного, как вы показываете, обычно не требуется. @ tobias-cohen имеет правильный ответ на этот вопрос, и в большинстве случаев. – Fabian

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

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

Здесь, я создать Sample программно кнопку, а затем установить название для своего состояния Normal Control, Вы можете использовать свой собственный объект кнопки для установки заголовка строки, кроме того вы можете также установить текст заголовка для других состояний управления путем изменения UIControlStateNormal на другие требуемые состояния.

0

Для быстрых Developers-

button.setTitle("Your button Name", forState: .Normal) 
Смежные вопросы