我正在尝试以编程方式添加UINavigationBar
。它正在成功添加。之后我想在UIImage
中添加UINavigationBar
。但是它没有显示。此外,如何在UINavigationBar
中以编程方式添加文本?
这是我的代码:
- (void)viewDidLoad
{
UINavigationBar *naviBarObj = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:naviBarObj];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logoicon.png"]];
}
答案 0 :(得分:0)
您需要设置导航栏的items
。通常这是由导航控制器完成的,但在这种情况下,您拥有导航栏,因此您需要手动执行:
naviBarObj.items = @[ self.navigationItem ];
如果您想在导航栏中间同时显示图片和文字,则需要创建UIView
并向其添加UIImageView
和UILablel
,然后添加该视图为titleView
。
答案 1 :(得分:0)
您只能在iOS7中更改导航和状态栏背景。为此,您可以使用
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];
* nav_bg.png *的大小应 320 * 64 px
如果您只想更改导航栏的颜色,可以使用
[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
对于导航栏中的标题,您应该使用
self.navigationItem.title = @"title";
答案 2 :(得分:0)
带对齐中心的文字
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero] ;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = NSTextAlignmentCenter;
// ^-Use UITextAlignmentCenter for older SDKs.
label.textColor = [UIColor yellowColor]; // change this color
self.navigationItem.titleView = label;
答案 3 :(得分:0)
更新回答
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationBar *naviBarObj = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:naviBarObj];
UIImageView *titleView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 0, 120, 44)];
titleView.image = [UIImage imageNamed:@"logoicon.png"];
[naviBarObj addSubview:titleView];
}
尝试此操作然后在自导航栏中添加标题视图,而不是在导航栏中。我编辑我的ans请立即尝试。
答案 4 :(得分:0)
以编程方式在navigationBar中添加UIImage(徽标图像而非背景图像)
UIImage *imgHome = [UIImage imageNamed:@"abc.png"];
UIImageView *imgvW = [[UIImageView alloc] initWithFrame:CGRectMake(100, 0, 100, 40)];
imgvW.image = imgHome;
[self.navigationController.navigationBar addSubview:imgvW];
或强>
UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"abc.png"]];
[self.navigationItem setTitleView:titleView];