IOS:如何在导航栏上方添加一个图像

时间:2011-11-13 23:08:17

标签: ios uinavigationcontroller

我想在导航栏上方添加图片。这是我想要的最终结果图片: click me

一开始,我认为这很简单:

  1. 使用UIBuilder添加一个UIImage和一个UIView
  2. 将导航栏控制器添加到UIView作为其根视图
  3. 我认为Hierarchy应该是这样的:UIViewController-> UIView-> NavigationBarController。(这里UIView是UIViewController视图的一个子视图)

    下面是我尝试过的代码之一,subView是由UIBuilder提供的一个UIView的IBOutlet

        UINavigationController *test;
        test=[[UINavigationController alloc]init];
    
        [[subView window] setRootViewController:test];
        [subView.window makeKeyAndVisible];
    

    但经过多次尝试后,我发现它无效。

    以前有人做过同样的工作吗?如果是的话,请给我一些建议。

2 个答案:

答案 0 :(得分:1)

self.navigationController.navigationBar.frame = CGRectMake(0, //height of imageView//, self.view.bounds.size.width, 44.0f);

答案 1 :(得分:0)

CodaFi的建议几乎就在那里。

试试这个:

test.view.frame = CGRectMake(0, //height of imageView//, self.window.bounds.size.width, //(total height of content... e.g. 460.0f if you leave the status bar visible)-(height of imageView)//);

有一点需要注意......导航控制器喜欢占用屏幕上的所有可用空间,所以有时它会自动将其视图调整为这样的矩形,{{0.0f,0.0f},{旋转设备后,320.0f,460.0f}}。我在iPad上经历了这么多次。您可能必须开始侦听旋转事件,并在每次旋转时将导航控制器视图的帧重置为不会阻挡图像的帧。