iPhone-SDK:在导航栏上添加图像:

1 iphone

我有一个导航控制器,也有一个表格视图.我想以编程方式在导航栏的左侧添加图像.当我试图通过viewDidLoad中的以下代码添加时:

CGRect frame = CGRectMake(0.0, 0.0, 94.0, 33.0);
    UIImageView *image = [ [UIImageView alloc]initWithImage:[UIImage imageNamed:@"topBarImage.png"] ];
    image.frame = frame;
    [self.view addSubview:image];
Run Code Online (Sandbox Code Playgroud)

但它添加到表格视图的顶部而不是导航选项卡.我认为,这个图像应该添加为navigationItem.但我不知道如何以编程方式在导航栏的左侧添加图像.可以请一位导游吗?

来福/

con*_*are 14

您只需使用条形按钮项的自定义视图.这是一个带有自定义图像按钮的示例

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(blah) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 32, 32)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
Run Code Online (Sandbox Code Playgroud)

你想这样做,因为导航控制器的标题将以这种方式自动调整大小.如果您按照自己的方式(导航栏的子视图)执行此操作,则文本将位于图像的后面或顶部

编辑:当您弹出并推动视图控制器时,它也将保留在屏幕上.

edit2:再次,您可以使用imageview作为自定义视图而不是按钮.这是代码

UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,32,32)];
[iv setImage:[UIImage imageNamed:@"myImage.png"]];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:iv];
[iv release];
Run Code Online (Sandbox Code Playgroud)