【问题标题】:UIBarButtonItems invisible issueUIBarButtonItem 不可见问题
【发布时间】:2016-05-27 23:24:43
【问题描述】:

我在界面构建器的视图中添加了一个工具栏。我需要以编程方式向它添加一些按钮。所以我要做的是在 viewDidLoad 方法中调用这个方法。这些项目是在执行操作方法时添加的,但它们不可见。

- (void) addingNumberOfLettersBar {
UIImage *image1 = [UIImage imageNamed:@"1"];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setImage:image1 forState:UIControlStateNormal];
//UIBarButtonItem *barButtonItem1 = [[UIBarButtonItem alloc] initWithImage:image1 style:UIBarButtonItemStylePlain target:nil action:@selector(changeNumberOfLettersToShow:)];
//UIBarButtonItem *barButtonItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:@selector(changeNumberOfLettersToShow:)];
UIBarButtonItem *barButtonItem1 = [[UIBarButtonItem alloc] initWithCustomView:button1];
barButtonItem1.tag = 1;

UIImage *image3 = [UIImage imageNamed:@"3"];
UIBarButtonItem *barButtonItem3 = [[UIBarButtonItem alloc] initWithImage:image3 style:UIBarButtonItemStylePlain target:nil action:@selector(changeNumberOfLettersToShow:)];
barButtonItem3.tag = 3;

UIImage *image4 = [UIImage imageNamed:@"4"];
UIBarButtonItem *barButtonItem4 = [[UIBarButtonItem alloc] initWithImage:image4 style:UIBarButtonItemStylePlain target:nil action:@selector(changeNumberOfLettersToShow:)];
barButtonItem4.tag = 4;

UIImage *image5 = [UIImage imageNamed:@"5"];
UIBarButtonItem *barButtonItem5 = [[UIBarButtonItem alloc] initWithImage:image5 style:UIBarButtonItemStylePlain target:nil action:@selector(changeNumberOfLettersToShow:)];
barButtonItem5.tag = 5;

UIImage *image5p = [UIImage imageNamed:@"5+"];
UIBarButtonItem *barButtonItem5p = [[UIBarButtonItem alloc] initWithImage:image5p style:UIBarButtonItemStylePlain target:nil action:@selector(changeNumberOfLettersToShow:)];
barButtonItem5p.tag = 0;

UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

NSArray *toolbarItems = [NSArray arrayWithObjects:barButtonItem1, flexibleItem, barButtonItem3, flexibleItem, barButtonItem4, flexibleItem, barButtonItem5, flexibleItem, barButtonItem5p, nil];


self.toolbar.items = toolbarItems;  
}

【问题讨论】:

  • 检查你的图片是否包含一些扩展,例如 [UIImage imageNamed:@"1.png"];
  • 图片没有问题。它们已添加到资产中,因此我不需要添加扩展名
  • 检查您的图像尺寸是否大于 20 x 20

标签: ios objective-c uibarbuttonitem uitoolbar


【解决方案1】:

检查您的图片尺寸。它不应该很大。为每个按钮设置色调颜色并检查它是否可见。

你应该在你的情况下创建barbuttonitem

UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"img1"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonClick:)];

【讨论】:

  • hmm 设置色调颜色有效 - 我可以看到彩色圆形。但是我尝试添加一个系统按钮,因为我认为问题是由于图像大小而发生的,我也没有看到它
  • 如果您认为它有帮助,请接受答案,以便其他有类似问题的人可以使用它:)
  • 按钮仍然不可见((我只是有色调颜色的圆形
  • 这意味着我认为图像大小存在问题,因为如果您看到圆形,则表示按钮已正确添加。