按钮图像不显示,但其他图像在其位置

时间:2011-08-24 12:31:46

标签: iphone objective-c ios uibarbuttonitem

我有一个.png图像,我试图显示为UIBarButtonItem。这是sintax:

_gotoButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btn_info.png"]
                                                   style:UIBarButtonItemStylePlain
                                                  target:self action:@selector(gotoAction)];

问题在于,当我尝试显示此图像时,在它的位置,有一个白色矩形的照片大小。

奇怪的是,当我尝试加载其他图像时,它可以工作。

我的第一个想法是格式不正确,但后来我使用了在线转换器,它仍然无法正常工作。可能是什么问题?

4 个答案:

答案 0 :(得分:2)

UIBarButtonItem上的图像只有在它们是单色时才有效(类似于标签栏图像)。

其他选项可以使用UIBarButtonItemStyleCustom并将UIImageview设置为按钮的自定义视图。

答案 1 :(得分:1)

您可能需要创建一个带有图像的自定义按钮,并使用barbuttonitem的initWithCustomView:方法。

    UIButton *bButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [bButton setImage:[UIImage imageNamed:@"btn_info.png"] forState:UIControlStateNormal];
    bButton.frame = CGRectMake(278,7, 32, 30);  
   [bButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *questionButton = [[UIBarButtonItem alloc]
                                       initWithCustomView:bButton];
    [questionButton setStyle:UIBarButtonItemStylePlain];

答案 2 :(得分:0)

  • 检查imageNamed:方法中文件名的拼写。
  • 在外部查看器中打开图像,例如预览并检查 它看起来像你想要的方式。特别检查alpha通道。

答案 3 :(得分:0)

确保您已将图像文件添加到Xcode项目中。