5

我已使用此代码在导航栏上成功添加了我的徽标;

UIImage *image = [UIImage imageNamed: @"top-logo"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];

self.navigationItem.titleView = imageView;

问题是我的标志的高度是54 像素,导航栏默认的高度是44 像素。徽标是故意设计为从导航栏底部溢出的,但我必须更改导航栏的边界才能做到这一点,而且我不想超出 Apple 的指南。但是我需要从导航栏溢出导航项的titleView的imageView。

此外,对于我的一个应用程序,我降低了导航栏的高度,当应用程序进入后台并返回时,导航栏的高度开始变得有趣(高度开始恢复正常,导致导航栏中出现黑色背景)。

4

4 回答 4

8

这是一个类似情况的帖子。接受的答案使用 UIButton 而不是 imageview。

来自已接受答案的代码:

- (void)viewDidLoad {
  [super viewDidLoad];

  UIButton *logoView = [[[UIButton alloc] initWithFrame:CGRectMake(0,0,85,40)] autorelease];
  [logoView setBackgroundImage:[UIImage imageNamed:@"navBarLogo.png"] forState:UIControlStateNormal];
  [logoView setUserInteractionEnabled:NO];

  self.navigationItem.titleView = logoView;
}

TTLauncherView导航栏中的图像而不是标题

于 2013-01-13T19:31:03.970 回答
4

首先,在您的 -viewDidLoad 方法中,创建一个适合 NavigationBar 大小的 UIImageView。之后,您将徽标放入该 UIImageView 并将其设置为您的 titleView。代码如下:

UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,40,40)];
image.contentMode = UIViewContentModeScaleAspectFit;
[image setImage: [UIImage imageNamed:@"logo"]];
self.navigationItem.titleView = image;
于 2015-08-13T17:55:05.597 回答
0

我一直在寻找类似的解决方案,但我尝试了一些不同的方法并且效果很好:

-(void)viewDidLoad
{

  [super viewDidLoad];

  //Set the place where you want your logo to appear on your navigation bar (just an example):

  UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(130, 20, 50,  54)];
  imageView.image = [UIImage imageNamed:@"yourImage@2x.png"];
  [self.navigationController.view addSubview:imageView];

}
于 2013-07-26T22:36:03.793 回答
0

如果您只是在寻找一种将图像添加到导航栏的方法并且您正在使用 Swift,那么这就是您需要的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let imageView = UIImageView(image: UIImage(named: "your_logo"))
    navigationItem.titleView = imageView
}
于 2016-09-28T17:42:24.217 回答