我可以在 iPhone 应用程序中为 UIToolBar 提供自定义背景吗?
是否可以为 UIToolBar 提供图像的自定义背景,而不是通常的蓝色/黑色淡出?
我尝试为视图提供背景并设置 UIToolBar 的不透明度,但这也会影响其上任何 UIBarButtons 的不透明度。
Is it possible to give a UIToolBar a custom background from an image rather than the usual tinted blue/black fade out?
I've tried giving the view a background and setting the opacity of the UIToolBar but that also affects the opacity of any UIBarButtons on it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
在这里回答我自己的问题!重写drawRect函数并创建UIToolbar的实现就可以解决这个问题:)
Answering my own question here!!! Overriding the drawRect function and creating an implementation of the UIToolbar does the trick :)
UIToolbar继承自UIView。这对我有用:
UIToolbar inherits from UIView. This just worked for me:
洛雷托答案的稍微修改版本,适用于我的 ios 4 和 5:
Slightly modified version of loreto's answer, which works for me on ios 4 and 5:
这是我用于 iOS 4 和 5 兼容性的方法:
This is the approach I use for iOS 4 and 5 compatibility:
只需将此部分添加到您的
-(void)viewDidLoad{}
just add this piece to your
-(void)viewDidLoad{}
如果您使用 idimmu 的答案并希望您的 barbuttonitems 被着色而不是默认值,您也可以将这几行代码添加到您的类别中:
If you use idimmu's answer and want your barbuttonitems to be colored instead of the defaults, you can add these couple of lines of code as well to your category:
从iOS5开始你可以使用Appearance API:
You can use the Appearance API since iOS5:
要兼容 iOS 5,你可以这样做
To be iOS 5 compliant you can do something like this
这个对我来说效果很好:
this one works fine for me:
您可以使用一个基本上向 UIToolBar 添加新属性的类别来执行此操作。重写
drawRect
可以工作,但它不一定是面向未来的。自定义UINavigationBar
的相同策略在 iOS 6 中停止工作。以下是我的做法。
.h 文件
.m 文件
在您的视图控制器代码中,例如
viewDidLoad
You can do this with a category that basically adds a new property to UIToolBar. Overriding
drawRect
can work but it's not necessarily future proof. That same strategy for customUINavigationBar
stopped working with iOS 6.Here's how I'm doing it.
.h file
.m file
In your view controller code, e.g.
viewDidLoad