如何在UIViewController中以编程方式在UINavigationBar中显示UIImage

时间:2014-03-10 11:47:19

标签: ios uinavigationbar

我正在尝试以编程方式添加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"]];
}

5 个答案:

答案 0 :(得分:0)

您需要设置导航栏的items。通常这是由导航控制器完成的,但在这种情况下,您拥有导航栏,因此您需要手动执行:

naviBarObj.items = @[ self.navigationItem ];

如果您想在导航栏中间同时显示图片和文字,则需要创建UIView并向其添加UIImageViewUILablel,然后添加该视图为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];