你是對的UIBarButtonItem
不是視圖,它們只是描述視圖的對象。所以設置一個框架或中心是不可能的。
你需要做的是創建兩個UIBarButtonItems
一個編輯和一個完成。然後使用UIToolBar
方法或屬性,您需要刪除編輯按鈕,但稍後保留,並將done按鈕放置到位。完成後逆轉交換。
您可以通過toolbar.items
獲取UIToolBar
的條目,它將是NSArray
。然後你可以removeObjectAtIndex:
刪除編輯按鈕。然後你可以insertObject:atIndex:
添加你的完成按鈕。然後回到UIToolBar
的setItems:animated
。
// Get current items
NSMutableArray *temp = [toolBar.items mutableCopy];
// Check for editing, with your own variable, then insert/remove buttons
if (/*Editing*/) {
[temp removeObject:editButton];
[temp insertObject:doneButton atIndex:0];
} else {
[temp removeObject:doneButton];
[temp insertObject:editButton atIndex:0];
}
// Send back to your toolbar
[toolBar setItems:temp animated:YES];
如果我在uibarbutton中使用自定義按鈕,這仍然可以嗎?我在執行交換時如何將所有的細節(backgrnd圖像等)轉移到代碼中? – Josh
無論你對UIBarButtonItem做了什麼,它都能正常工作。你所需要做的就是把它作爲一個變量或屬性來保存,這樣它就不會被釋放。 –
好吧,我會給它一個感謝:) – Josh