IOS5中如何自定义UINavigationBar
Posted
技术标签:
【中文标题】IOS5中如何自定义UINavigationBar【英文标题】:How to customize UINavigationBar in IOS5 【发布时间】:2012-01-05 00:39:31 【问题描述】:在ios5中,我还不知道如何自定义UINavigationBar。
我的代码是这样的:
[[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithWhite:0.5f alpha:1.0]];
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor blackColor],UITextAttributeTextColor
,[UIColor blackColor], UITextAttributeTextShadowColor
,[NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset
,[UIFont fontWithName:@"Arial" size:20.0],UITextAttributeFont
, nil]];
// Customize UIBarButtonItems
UIImage *gradientImage44 = [[UIImage imageNamed: @"title__bg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:gradientImage44 forBarMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor
,[UIColor whiteColor], UITextAttributeTextShadowColor
,[NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset
,[UIFont fontWithName:@"Arial" size:14.0],UITextAttributeFont
, nil] forState:UIControlStateNormal];
// Customize back button items differently
UIImage *buttonBack30 = [[UIImage imageNamed:@"bn_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
这张图是 PopoverView 中使用的 UINavigationViewController。
这张图是Modal打开的UINavigationViewController。
如你所见,我设置了 background-image,但 NavigationBar 的边框是不同的。
这是 PopoverView 的问题吗?
我不知道我错过了什么。
请告诉我你的建议。谢谢!!!新年快乐!!!
【问题讨论】:
***.com/questions/5575821/custom-nav-bar-styling-ios/… 【参考方案1】:转到 AppDelegate.m 并将代码粘贴到
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
将状态栏设置为黑色。
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque
animated:NO];
将@"menubar.png" 更改为图片的文件名。
UIImage *navBar = [UIImage imageNamed:@"menubar.png"];
[[UINavigationBar appearance] setBackgroundImage:navBar
forBarMetrics:UIBarMetricsDefault];
【讨论】:
【参考方案2】:看看这个:UINavigationBar Apple developer reference
【讨论】:
以上是关于IOS5中如何自定义UINavigationBar的主要内容,如果未能解决你的问题,请参考以下文章
iOS 5 - 1 自定义 UINavigationBar 不同于所有其他
新的ios5api:自定义UINavigationBar背景属性与简单的功能!!!
UINavigationBar 自定义背景与悬垂(iOS 5)