如何在iPhone应用程序的导航栏中显示图像?

时间:2009-05-10 00:27:05

标签: iphone

如何在iPhone应用程序的导航栏中显示图像? (比如,在标题之后)

7 个答案:

答案 0 :(得分:36)

以下是如何将图像置于NavBar中心。

UIImage *image = [UIImage imageNamed: @"NavBarImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];

self.navigationItem.titleView = imageView;

[imageView release];

此代码实际上包含在NavBar的Apple源代码中,可以在Apple的iPhone开发人员中心找到。 消息来源向您展示了操纵StatusBar和amp;的各种方法。的NavBar。

答案 1 :(得分:9)

我没有对此进行测试,但由于UINavigationBar是一个视图,您可以向其中添加子视图。

UIImage* myImage = [UIImage imageNamed:@"Myimage.png"];
UIImageView* myImageView = [[UIImageView alloc] initWithImage:myImage];
myImageView.frame.origin.x = 30.0; // You will have to find suitable values for the origin
myImageView.frame.origin.y = 5.0;

[myTabbar addSubView:myImageView];
[myImageView release];

您可以使用backItem属性之类的东西来计算图像视图的位置。

答案 2 :(得分:6)

如果您想要导航栏右侧的图像,您可以将其定义为自定义按钮,在预设时不执行任何操作,例如

UIButton* fakeButton = (UIButton *) [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem *fakeButtonItem = [[UIBarButtonItem alloc] initWithCustomView:fakeButton];
self.navigationItem.rightBarButtonItem = fakeButtonItem;
[fakeButtonItem release];
[fakeButton release];

答案 3 :(得分:3)

只需将代码放在- (void)viewWillAppear:(BOOL)animated;中,这样就可以了 并添加一个名为Top Bar的大小为320x40的图像

UIImage *image = [UIImage imageNamed: @"TopBar.png"];
[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

答案 4 :(得分:2)

导航栏有一个名为标题视图的属性 - 将其设置为您喜欢的图像。由于titleView会覆盖导航栏的标题,因此您必须在图像文件中包含所需的标题。仍然将标题设置为您想要的标题,以便在按下视图控制器时显示在后退按钮上

答案 5 :(得分:1)

我遇到了同样的问题。找出最佳解决方案

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"background_image.png"] forBarMetrics:UIBarMetricsDefault];

希望这会有所帮助......

答案 6 :(得分:0)

只需编写自己的导航栏即可。因此,您必须禁用导航栏拳头:

通过选择导航控制器来禁用界面构建器中的顶部栏 你的故事板:属性检查器 - >模拟指标 - >顶栏:选择无

之后你可以添加你喜欢的任何HeaderView ......

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, sFrame.size.width, 100)];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"header_image.png"]];
self.headerView.backgroundColor = background;

// ...add buttons and labels

[self.view addSubview:headerView];