ios - 无法为 UIBarButtonItem 设置图像

标签 ios objective-c iphone uitableview uibarbuttonitem

我正在尝试为我的 UIBarButtonItem 设置图像,但我无法做到这一点。我尝试了两次,在第一种情况下,我将图像放在正确的位置,但是当我单击按钮时没有任何反应(它应该弹出一个新窗口,但没有任何效果)。这是我用过的一段代码:

UIImage *faceImage = [UIImage imageNamed:@"plus_button.png"];
    UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom];
    face.bounds = CGRectMake( 0, 0, faceImage.size.width, faceImage.size.height );
    [face setImage:faceImage forState:UIControlStateNormal];
   UIBarButtonItem *faceBtn = [[[UIBarButtonItem alloc] initWithCustomView:face]initWithImage:faceImage style:UIBarButtonItemStylePlain target:self action:@selector(addProduct:)];

    self.navigationItem.leftBarButtonItem = faceBtn;

在第二种情况下,我在按钮上设置了图像,新窗口应该出现了,但不仅有我想要的自定义图像,而且它还显示“边框”,看起来图像默认放在中心按钮。显然我只想要我的形象,而不是边框​​,只有我的形象。我在第二种情况下使用了一段代码:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithImage:faceImage style:UIBarStyleDefault target:self action:@selector(addProduct:)];

    self.navigationItem.leftBarButtonItem = addButton;

请帮助我解决问题,任何帮助将不胜感激,谢谢!

最佳答案

试试这个……改变它的方法,根据你的形象

UIButton *button1=[UIButton buttonWithType:UIButtonTypeCustom];
[button1 setFrame:CGRectMake(10.0, 2.0, 45.0, 40.0)];
[button1 addTarget:self action:@selector(showLeft:) forControlEvents:UIControlEventTouchUpInside];
[button1 setImage:[UIImage imageNamed:@"left-arrow-button.png"] forState:UIControlStateNormal];
UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithCustomView:button1];
self.navigationItem.leftBarButtonItem = button;

关于ios - 无法为 UIBarButtonItem 设置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11274052/

相关文章:

iphone - 谁能提供适用于 iPhone 的 AudioFileStreamSeek 的工作示例?

iphone - Xcode 4 Final - 与 armv6 库链接时出现 "armv6 armv7"问题

ios - 解析今日扩展 "Mach-O Linked Error"

ios - Flurry Analytics 如何跟踪我的应用程序版本号?

ios - 生成.app文件并安装在设备上

ios - 在应用程序准备好销售后编辑 5.5 屏幕、4.0 屏幕、3.5 屏幕和 iPad 屏幕的屏幕截图

ios - 返回 UITableViewCell 自定义单元格

iphone - 刷新 UITableView

ios - 如何为 sprite kit 实现触摸和按住?

ios - willMoveToParentViewController 和 didMoveToParentViewController