使用 UINavigationController 默认 UIToolbar 的自定义背景
我想为我的 UIToolbar 使用我自己的背景。
为了用 UINavigationBar 做到这一点,我刚刚使用了这个类别并覆盖了 drawRect 方法:
@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
这段代码非常适合 UINavigationBar,但这不适用于包含在 UINavigationController 中并使用此行启用的 UIToolbar代码:
self.navController.toolbarHidden = NO;
任何人都可以帮我解决这个问题吗?我确信 UINavigationController 使用标准 UIToolbar,所以为什么这不起作用?!?谢谢
I want to use my self background for my UIToolbar.
To do that with the UINavigationBar I've just used this category with the override of the drawRect method:
@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
This piece of code works perfectly for the UINavigationBar but this does not work for the UIToolbar that is inncluded in the UINavigationController and enabled with this line o code:
self.navController.toolbarHidden = NO;
Can anyone help me with the problem? I' m sure that the UINavigationController use a standard UIToolbar so why this not works?!? thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要创建自定义 UI 元素,无需再创建类别。使用 IOS 5,您可以通过 UIApperance 协议更改任何 UI 元素的外观。您可以像平常一样更改各个 UI 元素,但真正的力量来自于您创建主题应用程序时。使用这个新协议,您可以更改特定 UI 元素的所有实例的样式,甚至可以更改特定设置中的 UI 元素(例如 UINavigationController 中的 UIBarButtonItem)。
要更改应用程序中所有 UINavigationBar 的外观,您可以像这样设置背景,
根据您使用的元素更改不同的属性来更改可以使用的 UINavigationBar 的标题属性,
您也可以在其他元素上使用此属性UI 元素,因此要更改 UIToolbar 所有实例的背景,您可以调用
希望这会有所帮助。
To create custom UI elements there is no need to create categories anymore. With IOS 5 you can change the appearance of any UI element through the UIApperance protocol. You can change individual UI elements as normal but the real power comes when you are creating a themed application. Using this new protocol you can change the style of all instances of a particular UI element or even a UI element in a particular setting such as a UIBarButtonItem in a UINavigationController.
To change the appearance of all of the UINavigationBars in your application you can set the background like so,
you change different attributes depending on which element you are using to change the title attributes of the UINavigationBar you can use,
you can also use this on other UI elements so to change the background on all instances of the UIToolbar you can call
Hope this helps.
在您的自定义 UINavigationController 的 viewDidLoad 中使用以下代码:
In your custom UINavigationController's viewDidLoad use the following code: