2011-10-27 14 views
0

カスタムUINavigationItemをカスタム背景イメージとタイトルで作成しています。画像は表示されますがタイトルは表示されません。何が間違っていますか? 私はそれをこのようにやっている:カスタムUINavigationItemのタイトルは表示されません

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 
[button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateSelected]; 
[button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateHighlighted]; 
[button setTitle:@"Cancel" forState:UIControlStateNormal]; 
[button setTitle:@"Cancel" forState:UIControlStateSelected]; 
[button setTitle:@"Cancel" forState:UIControlStateHighlighted]; 
[button addTarget:self action:@selector(closeButtonClicked) forControlEvents:UIControlEventTouchUpInside]; 

[button setFrame:CGRectMake(0, 0, 49, 30)]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

答えて

0

あなたはbackgroundImageのは、直接ではないとして画像を設定する必要があります。あなたはこの

[button setImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 

のように画像を設定した場合、タイトルはおそらく画像を削除この

[button setBackgroundImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 
+0

入手しました。ありがとう! – Misha

0

私はあなたが削除する必要がありますと思う:その後

[button setImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 

を、タイトルはどちらか

0

を表示さ

[button setImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 
この行を削除します

またはタイトルカラーを他の色に変更することができます.i問題が解決することを願っています。

あなたのイメージの色を克服できるDrakgrayColorまたはその他の色にしてください。

+0

よう

セットを表示されませんし、ボタンを間違って見えるようなオプションではありません。タイトルの色を変更する方が良いでしょう。 – jrturton

+0

色の変更は役に立たなかった。 – Misha

0

OK。しかし、私はそれが許可されているかどうかわからないんだけど、回避策が見つかりました:

UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Close",@"Close") style:UIBarButtonItemStylePlain target:self action:@selector(closeButtonClicked)]; 
[self.navigationItem setLeftBarButtonItem:closeButton]; 

for (UIView *view in self.navigationController.navigationBar.subviews) {   
    if ([[[view class] description] isEqualToString:@"UINavigationButton"]) { 
     UINavigationButton *button = {(UINavigationButton *)view}; 
     [button setBackgroundImage:[UIImage imageNamed:@"bar_button.png"] forState:UIControlStateNormal]; 
     [button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateSelected]; 
     [button setBackgroundImage:[UIImage imageNamed:@"bar_button_black.png"] forState:UIControlStateHighlighted]; 

    } 
} 
+0

UINavigationButtonはUINavigationBarのプライベートサブクラスであり、アクセスできません。 – ytur

関連する問題