无法在导航栏中设置完整图像

Posted

技术标签:

【中文标题】无法在导航栏中设置完整图像【英文标题】:Can't set full image in Navigation bar 【发布时间】:2011-05-10 06:17:20 【问题描述】:

我无法在导航栏(或应用顶部的导航控制器)中设置完整图像。左边的空间很小。当我按下信息按钮时,它不在图像上。我该如何解决它

这是我的代码,请看一下

UIImageView* img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerBG.png"]];
    img.frame = CGRectMake(0, 0, 320, 44);
    self.navigationItem.titleView =img;
    [img release];


UIButton * infoDarkButtonType = [[UIButton buttonWithType:UIButtonTypeInfoLight] retain];
     infoDarkButtonType.frame = CGRectMake(0.0, 0.0, 25.0, 25.0);
     infoDarkButtonType.backgroundColor = [UIColor clearColor];
     [infoDarkButtonType addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
     UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:infoDarkButtonType];
     self.navigationItem.leftBarButtonItem = infoButton;
     [infoDarkButtonType release];
     [infoButton release];

非常感谢。

我。

【问题讨论】:

【参考方案1】:

如果您希望导航栏显示图像,您可以试试这个

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect

  UIImage *image = [UIImage imageNamed: @"custom_nav_bar.png"];
  [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

@end

【讨论】:

是的,它可以工作,但它会改变每一页的所有导航栏。我只想改变一页。你能指导我更多吗。 您能否隐藏导航栏并使用类似于导航栏的自定义视图以及必要的按钮。 对不起。恐怕不能。导致它来自导航控制器 是的,只是隐藏导航栏。这是可能的。 [self.navigationController setNavigationBarHidden:YES animated:animated];【参考方案2】:

使用此代码行在 NavigationController 中添加图像...

UIImageView* img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerBG.png"]];
img.frame = CGRectMake(0, 0, 320, 44);
[self.navigationController.navigationItem addSubView:img];
[img release];

现在,您在导航中设置图像..

【讨论】:

以上是关于无法在导航栏中设置完整图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IB 中设置导航栏和工具栏背景图像

在 Swift 的导航栏中设置图像

swift:在导航栏中设置后退按钮图像

在 iOS 7 中设置导航栏图像

在 Swift iOS 8 中设置透明导航栏和状态栏的图像底图

无法在导航栏中设置左栏按钮项?