2012-10-11 121 views
1

我已定製的UIBarButtonItem這樣的標題:如何自定義定製的UIBarButtonItem

UIButton *loginBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
loginBtn.frame = CGRectMake(0, 0, 46.0, 34.0); 
[loginBtn setImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal]; 
[loginBtn addTarget:self action:@selector(loginPressed:) forControlEvents:UIControlEventTouchUpInside]; 
[loginBtn setTitle:@"Login" forState:UIControlStateNormal]; 

UIBarButtonItem *finishedButton = [[UIBarButtonItem alloc] initWithCustomView:loginBtn]; 

[finishedButton setStyle:UIBarButtonItemStylePlain]; 
self.navigationItem.rightBarButtonItem = finishedButton; 

但現在我不能看到標題爲「登陸」,它是空白的按鈕,似乎「setTitle:」不起作用。 有人能告訴我爲什麼?謝謝!

回答

0

setTitle:did工作,你只是沒有仔細閱讀文檔。使用setBackgroundImage:而不是setImage:,因爲後者會覆蓋setTitle:,但前者不會(這就是您想要的)。因此,而不是

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

[loginBtn setBackgroundImage:[UIImage imageNamed:@"loginBtn.png"] forState:UIControlStateNormal]; 
      ^
      +- background! 

的,你應該罰款去。

+0

它的工作原理!現在標題出現了。非常感謝!但是按鈕上的字體太大了,我可以設置字體嗎? –

+0

@ trey.lin不客氣。順便說一下,你應該接受幫助的答案。是的,你可以設置字體:嘗試'loginBtn.titleLabel.font = [UIFont boldSystemFontOfSize:10];'或類似的。 – 2012-10-11 06:55:55