如何在iPhone应用程序的导航栏中显示图像? (比如,在标题之后)
答案 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];