如何用图像替换条形按钮,类似于Facebook?

时间:2012-06-08 17:28:40

标签: iphone ios

我正在为一个应用程序进行原型设计。我以编程方式在导航栏中添加了一串条形按钮:

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];   
}

现在,它们看起来非常难看,尤其是对着导航栏。我想拍摄一些图像(类似于标签栏图像)并将它们放在那里以替换按钮。我该怎么做?

对不起我的愚蠢,我是新来的。

谢谢!

1 个答案:

答案 0 :(得分:0)

 [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,这意味着当image-1为1时,名称为iimage-2时为i是2.

然后在[rightButton setBackgroundImage:imageName forState:UIControlStateNormal];部分,它只取我们创建的字符串的名称(imageName)。

这意味着由于您的循环,您的图片应该被命名为image-0image-5

如果你需要我清除任何东西,我会很乐意解释更多。