UIBarButtonItem 在 iOS 7 的 UIToolbar 上不显示
Posted
技术标签:
【中文标题】UIBarButtonItem 在 iOS 7 的 UIToolbar 上不显示【英文标题】:UIBarButtonItem does not show on UIToolbar in iOS 7 【发布时间】:2013-11-13 19:16:53 【问题描述】:在 ios 7 中,UIBarButtonItem 不会显示在我的 UIToolbar 上,它会在 tableview 底部弹出。
UIToolbar *actionToolbar;
UIBarButtonItem *actionButton;
我是这样添加的:
actionToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 524, 320, 44)];
actionButton =
[[[UIBarButtonItem alloc]
initWithTitle:@"Delete"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(noAction:)]
autorelease];
[actionToolbar setItems:[NSArray arrayWithObject:actionButton]];
这里是显示 UIToolbar 的代码:
- (void)showActionToolbar:(BOOL)show
CGRect toolbarFrame = actionToolbar.frame;
CGRect tableViewFrame = self.tableView.frame;
if (show)
TOOLBAR_DISPLAYED = TRUE;
toolbarFrame.origin.y = actionToolbar.superview.frame.size.height - toolbarFrame.size.height;
tableViewFrame.size.height -= toolbarFrame.size.height;
else
TOOLBAR_DISPLAYED = FALSE;
toolbarFrame.origin.y = actionToolbar.superview.frame.size.height;
tableViewFrame.size.height += toolbarFrame.size.height;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
actionToolbar.frame = toolbarFrame;
self.tableView.frame = tableViewFrame;
//I use this now in iOS7 to show the toolbar as purple otherwise it shows white
actionToolbar.superview.backgroundColor = [UIColor colorWithRed:0.10 green:0.10 blue:0.43 alpha:0.5];
[UIView commitAnimations];
这在以前的版本上运行良好,我不知道现在可能出现什么问题。
【问题讨论】:
在 iOS 7 中,按钮将没有边框。它将显示为文本。确保您的色调颜色已设置。也许按钮和工具栏的文本颜色相同。 感谢您的提示 - 我尝试更改所有这些小部件的色调和背景颜色,但仍然无法将其显示在工具栏上。最后切换到使用带有 UIButton 的 UIView,而不是按预期工作。 【参考方案1】:设置色调颜色。在我的情况下,工具栏是黑色的。所以我将色调颜色设置为白色,它起作用了。
【讨论】:
以上是关于UIBarButtonItem 在 iOS 7 的 UIToolbar 上不显示的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UINavigationBar [iOS 7] 中编辑左、右 UIBarButtonItem 的空白
UIBarButtonItem在用作左侧或右侧导航栏项目时,自定义视图未在iOS 7上正确对齐
工具栏中的 UIBarButtonItem 可以在 iOS 7 中具有背景图像吗?
在 iOS 7 上带有 UIBarButtonItem 外观的 EXC_BAD_ACCESS