更改 UIToolbar 的背景图片

Posted

技术标签:

【中文标题】更改 UIToolbar 的背景图片【英文标题】:Change background image of UIToolbar 【发布时间】:2011-03-18 05:07:42 【问题描述】:

如何?我已经能够为导航栏做到这一点,但不是 UIToolbar。我不想更改 tintColor。我想更改整个图像。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

来自Can I give a UIToolBar a custom background in my iPhone app?

重写 drawRect 函数并创建 UIToolbar 的实现就可以了:)

   @implementation UIToolbar (CustomImage)
- (void)drawRect:(CGRect)rect 
    UIImage *image = [UIImage imageNamed: @"nm010400.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

@end

【讨论】:

感谢您的回答 7KV7。我试过这个,它似乎不起作用。为了清楚起见,我将此代码放在需要新工具栏的视图控制器中,位于@implementation 上方。我做错了吗? 我认为继承 uitoolbar 更好 7KV7,你提到的方法在设备上运行良好,但在模拟器上不行。但是,是的,子类化似乎是一种更好的方法。感谢您的回答!【参考方案2】:

您可以使用以下代码:

[myToolbar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"toolbar_40.png"]] autorelease] atIndex:0];

已针对模拟器 4.3 修复。

【讨论】:

【参考方案3】:

ios5 开始,您可以使用 Appearance API:

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"someImage"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

【讨论】:

以上是关于更改 UIToolbar 的背景图片的主要内容,如果未能解决你的问题,请参考以下文章

设置 UIToolBar 背景图片

在iphone中设置UIToolBar的背景图片

如何以编程方式将平面背景 UIColor 渲染为 UIToolbar 的背景?

如何让 UIToolbar 的背景透明? [复制]

UIToolBar 背景透明

UIToolbar 的多个自定义背景