我正在为一个应用程序进行原型设计。我以编程方式在导航栏中添加了一串条形按钮:
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];
}
现在,它们看起来非常难看,尤其是对着导航栏。我想拍摄一些图像(类似于标签栏图像)并将它们放在那里以替换按钮。我该怎么做?
对不起我的愚蠢,我是新来的。
谢谢!
答案 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时,名称为i
,image-2
时为i
是2.
然后在[rightButton setBackgroundImage:imageName forState:UIControlStateNormal];
部分,它只取我们创建的字符串的名称(imageName)。
这意味着由于您的循环,您的图片应该被命名为image-0
到image-5
。
如果你需要我清除任何东西,我会很乐意解释更多。