2014-03-05 154 views
4

我花了好幾個小時試圖弄清楚這個問題。我最後的選擇是創建空白標籤來創造空間,但我覺得他們是一個更清潔的方式。在導航欄項目之間創建空白空間?

基本上我有三個按鈕,我們正試圖在它們之間創造固定的空間來整潔。每個按鈕都以編程方式添加。

我發現這個代碼:

UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
fixedItem.width = 20.0f; // or whatever you want 

Source

但是你怎麼在這一段代碼分配給某個按鈕?

回答

0

您可能會多次將此按鈕添加到其他按鈕的數組中。然後,您將該陣列設置爲rightBarButtonItems(或leftBarButtonItems)或您的視圖控制器導航項目。

8

它可能會讓你感到困惑。您不要將此代碼分配給按鈕。該代碼創建了一個類型爲UIBarButtonSystemItemFixedSpace的按鈕。所以,做一下你所說的答案吧。創建固定的& flexible UIBarButtonItem s(以及其他按鈕),然後將其設置在導航欄上。在這種情況下,他們將出現在您的導航欄的左上角區域(通過leftBarButtonItems):

// Create "Normal" buttons items: 
UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"1" style:UIBarButtonItemStylePlain target:Nil action:nil]; 
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithTitle:@"2" style:UIBarButtonItemStylePlain target:Nil action:nil];  
UIBarButtonItem *button3 = [[UIBarButtonItem alloc] initWithTitle:@"3" style:UIBarButtonItemStylePlain target:Nil action:nil]; 

// Create "Spacer" bar button items 
UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
fixedItem.width = 20.0f; // or whatever you want 
UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

self.navigationItem.leftBarButtonItems = @[button1, fixedItem, button2, flexibleItem, button3]; 

此外,如果你有一個工具欄,你可以使用工具欄的items屬性:

self.toolbar.items = @[button1, fixedItem, button2, flexibleItem, button3]; 
+0

的間距現在與按鈕,但是現在的按鍵間隔,他們不再與特定選擇的操作工作。這些按鈕在之前被創建爲UIButton,然後作爲UIBarButtonItems放置在導航欄數組中,這是他們之前能夠運行的。你認爲我如何回到功能? – Camerz007

+0

我們得到它的工作!非常感謝!!我們必須改變目標爲「自我」。 – Camerz007

+0

如果這回答了您的問題,請打勾! – Aaron

4

如果你想在Interface Builder中做到這一點。 我試圖拖動一個靈活的或固定的空格欄項目,但它似乎不能在導航欄中工作。 解決方法:在條形按鈕之間拖動UIView。在大小檢查器中調整UIView的寬度,並將視圖的顏色和條形按鈕項目設置爲清除顏色。

enter image description here

+0

感謝您的支持。我希望在IB中有更好的方法!你有沒有找到? –

相關問題