2013-05-20 21 views
28

私は同じような質問をたくさん見ましたが、誰も私が探している答えはありません。このコードを使用してUIButtonを作成し、それをtitleLabelに設定すると、UIButtonが表示されますが、titleLabelは表示されません。UIButtonのタイトルラベルが表示されない

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 
[button setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal]; 
button.titleLabel.text = @"Title"; 
button.titleLabel.font = [UIFont fontWithName:@"System-Bold" size:25.0f]; 
[self.view addSubview:button]; 

このコードは、ボタンを表示しますが、titleViewではなくタイトルです。なぜそれができますか?私はiOS 6以上を開発しています。

注1:私はそれは、フォントおよびフォントサイズを設定することですtitleLabelを使用する必要があるため

[button setTitle:@"Title" forState:UIControlStateNormal]; 

:私はこのようなオプションを捜しているわけではありません。

注2:私はUILabelを作成して、ボタンのサブビューとして追加することはできません。ボタンは後でアニメーション化されるためです。

答えて

66

あなたは常に、ボタンのタイトルを更新するときControlStateを指定する必要があります!

UIControlStateNormal 
UIControlStateHighlighted 
UIControlStateDisabled 
UIControlStateSelected 
例えばので

[button setTitle:@"Title" forState:UIControlStateNormal]; 

をして、あなたが設定できるカスタム設定titleLabelのために: UIButtonsのための4つの値があります

[button.titleLabel setFont:[UIFont fontWithName:@"Zapfino" size:20.0]]; 
[button.titleLabel setTextColor:[UIColor blueColor]]; 
+3

D (titleLabelに 'setTextColor'を呼び出すのではなく) – hverlind

8
[button setTitle:@"Title" forState:UIControlStateNormal]; 

タイトル文字列を正しく設定する方法はありますか。

titleLabelは、フォントと色を設定するために使用されています。

+0

注1:私はこの答えを探していません。私はこのフォントを使用することはできません! forState: – Peter

+1

titleLabelはのsetTitleによって設定されます文字列のフォントや色を設定するために使用され –

+0

は、私はあまりにも長い間、このために探していた、どうもありがとう:色を設定するためのforState':あなたは 'setTitleColorを使用する必要があります –

2

...

使用してみてください
[button setNeedsLayout]; 
[button layoutIfNeeded]; 

ボタンを押すとレイアウトが更新されます。

関連する問題