你是对的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