2012-08-29 60 views
0

我正在製作一個具有2個圖像的自定義UIButton,但由於某種原因標題沒有顯示出來,按鈕顯示正常,但沒有任何標題。UIButton標籤不可見

_button = [UIButton buttonWithType:UIButtonTypeCustom]; 
_button.frame = CGRectMake(10, 250, 300, 43); 
[_button addTarget:self action:@selector(loginClicked:) forControlEvents:UIControlEventTouchUpInside]; 
[_button setImage:[UIImage imageWithContentsOfFile:normalButtonImg] forState:UIControlStateNormal]; 
[_button setImage:[UIImage imageWithContentsOfFile:hoverButtonImg] forState:UIControlStateSelected]; 
[_button setTitle:@"Login" forState:UIControlStateNormal]; 
[_button setTitle:@"Login" forState:UIControlStateHighlighted]; 
[_button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[_button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; 
[self.view addSubview:_button]; 

回答

4

這兩條線:

[_button setImage:[UIImage imageWithContentsOfFile:normalButtonImg] forState:UIControlStateNormal]; 
[_button setImage:[UIImage imageWithContentsOfFile:hoverButtonImg] forState:UIControlStateSelected]; 

應該是

[_button setBackgroundImage:[UIImage imageWithContentsOfFile:normalButtonImg] forState:UIControlStateNormal]; 
[_button setBackgroundImage:[UIImage imageWithContentsOfFile:hoverButtonImg] forState:UIControlStateSelected]; 

說明:如果一個前景圖像被設置爲的UIButton,圖像被放置在標題的上方,所以它可能隱藏它。如果您想要圖像要顯示標題,則必須設置背景圖像。

+0

不恰當的選擇_ignore_這個詞。因爲標題不會被忽略。 'image'只是將'title'推到按鈕外面。當你使用比按鈕尺寸更小的圖像時,你會看到'標題'被'圖像'推向正確的方向。 – holex

+0

啊哈得到它,這完美的作品! –

0

設置圖像時,將覆蓋標題。如果你可以讓你的圖片成爲背景圖片,那就行了。否則,您將需要爲按鈕創建一個合成圖像,從而基本上創建一個新的圖像,這是您想要的圖像,並在其上繪製標題。