2011-02-10 198 views
0

我正在設置一個帶有2個按鈕的UINavigationBar,它們在按下時會改變它們的標題。我遇到的問題是,如果我使用setTitle:@"IT",然後使用setTile:@"THEM"按鈕更改大小。UINavigationBar按鈕更改大小?

沒問題我想,我會在photoshop中製作兩個105x23像素的圖像,並在那裏添加文本。然而,這不起作用,因爲按鈕似乎改變了大小,也許按鈕大小是基於沒有透明像素的。

enter image description here & enter image description here都105x23px

注:灰色的背景是透明的,我瘋了它灰色這裏顯示的每個

// BUTTON CHANGES SIZE 
[self setNavBarItem:[[navBar items] objectAtIndex:0]]; 
[self setButtonStart:[navBarItem leftBarButtonItem]]; 
[self setButtonReset:[navBarItem rightBarButtonItem]]; 

[[self buttonStart] setImage:[UIImage imageNamed:@"IT.png"]]; 
[[self buttonReset] setImage:[UIImage imageNamed:@"THEM.png"]]; 

大小我想出瞭解決的辦法是將按鈕標題設置爲一個常量文本間隔符,以便每次更改圖像時,該按鈕保持與按鈕標題始終保持相同的大小相同。它工作正常,但我只是想知道是否有其他人遇到過這種情況,也許找到了替代解決方案?

// BUTTON MAINTAINS FIXED SIZE 
[self setNavBarItem:[[navBar items] objectAtIndex:0]]; 
[self setButtonStart:[navBarItem leftBarButtonItem]]; 
[self setButtonReset:[navBarItem rightBarButtonItem]]; 

[[self buttonStart] setTitle:@"_______"]; 
[[self buttonReset] setTitle:@"_______"]; 
[[self buttonStart] setImage:[UIImage imageNamed:@"IT.png"]]; 
[[self buttonReset] setImage:[UIImage imageNamed:@"THEM.png"]]; 

回答

1

設置UIBarButtonItem的possibleTitles屬性。它應該正是你想要的。

possibleTitles可能的 標題顯示在條形按鈕上。

@屬性(非原子,副本)的NSSet * possibleTitles

討論
使用該屬性提供一個提示如何正確尺寸 欄按鈕項 系統要寬,足以容納 你最寬的頭銜。將此屬性的值 設置爲NSSet 對象,其中包含您爲 打算用作條形圖 按鈕項目的所有標題。使用您打算顯示的實際文字 字符串。

此屬性適用於欄按鈕 項目放置在導航欄或 工具欄。

+0

哇,現在這很有趣!我不知道這個屬性,我肯定會放棄它,非常感謝。 – fuzzygoat

+0

這看起來像在UIBarButton項目添加到UINavigationBar之前它需要發生,你知道如果UINavigationBar和barButton是通過XIB文件創建的,你可能會這樣做。目前我已經嘗試了這個權利在我的viewDidLoad的頂部,它似乎沒有什麼區別。 – fuzzygoat