0

Apple 的 iPad邮件应用程序有几个图标嵌入在拆分视图控制器的详细视图的navigationItem的setRightBarButtonItems区域中:

在此处输入图像描述

我怎样才能像这样将图标添加到 navigationItem 栏(我已经有了图标)。

我的问题是 UIBarButtonItem 类引用似乎没有适当的 UIBarButtonItemStyle 允许按钮周围没有边框。我尝试通过 initWithCustomView 配置 UIBarButtonItem 但点击按钮不起作用。

在此先感谢您的任何建议

干杯

编辑:我可以使用 UIBarButtonItemStylePlain 但它看起来不像苹果按钮那样“嵌入”,这是我所追求的。

在此处输入图像描述

4

1 回答 1

0

我已经解决了,可以产生以下结果:

在此处输入图像描述

这是我使用的代码。它可以进行优化,但是出于演示目的,它很好且重复:

- (void)setupNavigationItemButtons {

float buttonWidth = 60;
float buttonHeight = 40;

UIImage *imageA = [UIImage imageNamed:@"212-action2.png"]; 
UIImage *imageB = [UIImage imageNamed:@"111-user.png"];
UIImage *imageC = [UIImage imageNamed:@"122-stats.png"];

UIButton *buttonA = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, buttonWidth, buttonHeight)];
UIButton *buttonB = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, buttonWidth, buttonHeight)];
UIButton *buttonC = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, buttonWidth, buttonHeight)];

[buttonA addTarget:self action:@selector(doSomething:)      forControlEvents:UIControlEventTouchUpInside];
[buttonB addTarget:self action:@selector(doSomethingElse:)  forControlEvents:UIControlEventTouchUpInside];
[buttonC addTarget:self action:@selector(doSomethingRandom:)forControlEvents:UIControlEventTouchUpInside];

[buttonA setImage:imageA forState:UIControlStateNormal];
[buttonB setImage:imageB forState:UIControlStateNormal];
[buttonC setImage:imageC forState:UIControlStateNormal];

UIBarButtonItem *buttonItemA = [[UIBarButtonItem alloc] initWithCustomView:buttonA];
UIBarButtonItem *buttonItemB = [[UIBarButtonItem alloc] initWithCustomView:buttonB];
UIBarButtonItem *buttonItemC = [[UIBarButtonItem alloc] initWithCustomView:buttonC];

[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:buttonItemA, buttonItemB, buttonItemC,nil]];

}

于 2012-06-28T23:31:02.503 回答