iphone - 如何在没有 UIToolBar 的情况下使用 UIBarButtonItem 样式

Posted

技术标签:

【中文标题】iphone - 如何在没有 UIToolBar 的情况下使用 UIBarButtonItem 样式【英文标题】:iphone - How can I use an UIBarButtonItem style without the UIToolBar 【发布时间】:2010-10-25 14:45:29 【问题描述】:

我可以在我的视图中显示一个黑色样式的 UIBarButtonItem 而不使用下面的 UIToolBar 吗?

UIToolBar总是有一种边框的东西,我希望系统UIBarButtonItem是黑色的,就像一个黑色的标准取消按钮,而不是UIToolBar

我该怎么做?

谢谢

【问题讨论】:

【参考方案1】:

有一个厚颜无耻的 hack 可以帮助你解决这个问题。

您想使用样式设置为UISegmentedControlStyleBar 且只有一项的 UISegmentedControl。您还需要将setMomentary 设置为是 - 使其表现得像一个按钮:

UISegmentedControl *myCustomButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Hello",nil]];
[myCustomButton setSegmentedControlStyle:UISegmentedControlStyleBar];
[myCustomButton setTintColor:[UIColor blackColor]];
[myCustomButton setMomentary:YES];
[self.view addSubview:myCustomButton];

这将为您提供一个看起来像 UIBarButtonItem 的按钮,您可以将其添加到普通视图中,就好像它是一个按钮一样。您也可以添加目标和操作。 :)

这就是你得到的:像这样的东西:

【讨论】:

谢谢托马斯,它成功了。但问题是如果我点击它,它不会有任何高亮功能,我的意思是一些效果来显示这个按钮被按下。如何添加高亮功能? 它应该这样做......这就是setMomentary 所做的,它会像普通按钮一样暂时显示一个突出显示......尝试将 tintColor 设置为darkGrayColor 看看是否有任何区别。可能blackColor 太暗了,没有更暗的了。 :p【参考方案2】:

我还没有完全做过类似的事情,但我建议你可以以某种方式将 UIToolBar 的所有子视图的 alpha 设置为零,但 UIBarButtonItem 除外。让 UIBarButtonItem 可见。

UIToolBar 继承自 UIView,所以我的第一个尝试是将其 backgroundColor 设置为 clearColor。

【讨论】:

以上是关于iphone - 如何在没有 UIToolBar 的情况下使用 UIBarButtonItem 样式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)

在iphone中设置UIToolBar的背景图片

UIToolBar 不在 iPhone 屏幕底部绘制

如何在 iOS 11 和 iPhone X 上实现隐藏 UITabBar 以显示 UIToolbar

你如何获得库存的 UIToolBar 图标?

UIToolbar 标准尺寸