更改 UIToolbar 项目将两个按钮放在一起

Posted

技术标签:

【中文标题】更改 UIToolbar 项目将两个按钮放在一起【英文标题】:Changing UIToolbar items put two buttons on top of each other 【发布时间】:2011-12-01 18:13:31 【问题描述】:

我有一个带有几个按钮的 UIToolbar:

我正在更改工具栏中的项目。我删除了最后一个显示“出售此资产...”的按钮,并添加了一个标题为“完成销售”的新 UIBarButtonItem,如下所示:

NSMutableArray *items = [[self.toolbar items] mutableCopy];
[items removeLastObject];
[items addObject:self.barButtonCompleteSale];
[self.toolbar setItems:items animated:YES];

问题:UIToolbar 没有正确更新。似乎“编辑”和“出售此资产...”之间的间隔是要删除的项目,并且正在添加“完成销售”项目,但它位于“出售此资产”按钮的顶部。

这发生在模拟器(ios 4.3 和 iOS 5.0)以及设备(iOS 5.0)上。 为什么会这样?

【问题讨论】:

【参考方案1】:

知道发生了什么,但我决定将该 UIBarButton 项移出工具栏(只是为了将其保留在 xib 中以供以后比较),然后我添加了一个全新的UIBarButton 项目到工具栏,更改标题,连接 IBAction,现在一切正常。

在 xib 的幕后一定有一些奇怪的东西,但我不知道是什么原因造成的。不过,重新创建按钮似乎已经修复了它。

【讨论】:

以上是关于更改 UIToolbar 项目将两个按钮放在一起的主要内容,如果未能解决你的问题,请参考以下文章

用故事板实现的 UIToolbar:如何更改按钮?

NavigationController UIToolbar 更改项

在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化

更改 UIBarButtonItem 的 UIToolbar 阴影颜色

如何使用包含彩色图像的按钮自定义 UIToolbar?

将 UIToolBar 放在 UISplitViewController 上方?