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

时间:2009-09-14 17:04:35

标签: 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];

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

来福/

1 个答案:

答案 0 :(得分: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];

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

编辑:弹出并按下视图控制器时,它也将保留在屏幕上。

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];
相关问题