如何用图片替换 Bar Buttons,类似于 Facebook?
Posted
技术标签:
【中文标题】如何用图片替换 Bar Buttons,类似于 Facebook?【英文标题】:How to replace Bar Buttons with images, similar to Facebook? 【发布时间】:2012-06-08 17:28:39 【问题描述】:我现在正在制作一个应用程序的原型。我以编程方式向导航栏添加了一堆栏按钮:
NSArray *buttonTitles = [[NSArray alloc] initWithObjects:@"Alerts", @"Causes", @"Msgs", @"My Work", @"My Posts", nil];
NSMutableArray *rightBarButtons = [[NSMutableArray alloc] init];
for (int i = 0; i < 5; i++)
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
rightButton.frame = CGRectMake(0, 0, 44, 34);
[rightButton setTitle:[buttonTitles objectAtIndex:i] forState:UIControlStateNormal];
[rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
rightButton.titleLabel.font = [UIFont systemFontOfSize:10];
rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
[rightBarButtons addObject:rightItem];
现在,它们看起来真的很丑,尤其是在导航栏上。我想拍摄一些图像(类似于标签栏图像)并将它们放在那里以替换按钮。我该怎么做?
对不起我的愚蠢,我是新手。
谢谢!
【问题讨论】:
rightButton 是您希望更改为图像的对象吗? 【参考方案1】: [rightButton setBackgroundImage:@"image.png" forState:UIControlStateNormal];
如果我能正确理解你的问题,就可以解决问题。
for (int i = 0; i < 5; i++)
NSString* imageName = [NSString stringWithFormat:@"image-%d", i];
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
rightButton.frame = CGRectMake(0, 0, 44, 34);
[rightButton setTitle:[buttonTitles objectAtIndex:i] forState:UIControlStateNormal];
[rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
rightButton.titleLabel.font = [UIFont systemFontOfSize:10];
[rightButton setBackgroundImage:imageName forState:UIControlStateNormal];
rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
[rightBarButtons addObject:rightItem];
好的,这就是我们可以做到的。
我创建了一个 NSString (imageName),为字符串分配了 image-%d 的值,这意味着当 i
为 1 时,它的名称为 image-1
,当 i
为 2 时,它的名称为 image-2
。
然后在[rightButton setBackgroundImage:imageName forState:UIControlStateNormal];
部分,它只需要我们创建的字符串的名称(imageName)。
这意味着由于您的循环,您的图像应命名为 image-0
到 image-5
。
如果您需要我澄清任何事情,我很乐意解释更多。
【讨论】:
感谢您的及时回复。我正在尝试为每个按钮设置不同的图像,这就是我遇到问题的地方。我会在 viewDidLoad 或其他东西中使用一些 if () 语句吗?谢谢以上是关于如何用图片替换 Bar Buttons,类似于 Facebook?的主要内容,如果未能解决你的问题,请参考以下文章