gpt4 book ai didi

uinavigationcontroller - 使用 UINavigationController 默认 UIToolbar 的自定义背景

转载 作者:行者123 更新时间:2023-12-04 06:46:50 25 4
gpt4 key购买 nike

我想为我的 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 那么为什么这不起作用?!?谢谢

最佳答案

要创建自定义 UI 元素,不再需要创建类别。使用 IOS 5,您可以通过 UIApperance 协议(protocol)更改任何 UI 元素的外观。您可以像往常一样更改单个 UI 元素,但真正的威力来自于创建主题应用程序。使用这个新协议(protocol),您可以更改特定 UI 元素的所有实例的样式,甚至可以更改特定设置中的 UI 元素,例如 UINavigationController 中的 UIBarButtonItem。

要更改应用程序中所有 UINavigationBars 的外观,您可以像这样设置背景,

[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"myNavBar.png"] forBarMetrics:UIBarMetricsDefault];

根据您使用的元素来更改不同的属性,以更改您可以使用的 UINavigationBar 的标题属性,
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor,
[UIFont fontWithName:@"MarkerFelt-Thin" size:24], UITextAttributeFont, nil]];

您还可以在其他 UI 元素上使用它,以便更改您可以调用的 UIToolbar 的所有实例的背景
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"myToolBar.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

希望这可以帮助。

关于uinavigationcontroller - 使用 UINavigationController 默认 UIToolbar 的自定义背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com