如何从不同的视图设置特定视图中多个按钮的背景图像?

时间:2011-08-07 01:34:26

标签: iphone xcode button colors

基本上,我无法弄清楚如何更改背景图像。我搜索和搜索,似乎无法找到它。有人有主意吗?谢谢!

更新

以下是我用来显示视图的代码:      SettingsViewController * settingsView = [[SettingsViewController alloc] initWithNibName:nil bundle:nil];     [self presentModalViewController:settingsView animated:YES];

如果有人需要任何其他帮助,我会尽我所能!谢谢!

2 个答案:

答案 0 :(得分:1)

在不同视图之间传递消息可以通过直接调用方法(不是一个好的架构解决方案,但对于小项目可能不是关键)或使用上面的答案中描述的事件驱动模型来完成。 至于对象集合的绑定和后续处理,我建议查看IBOutletCollection关键字,该关键字允许将InterfaceBuilder中的多个对象绑定到类型为NSArray的属性。

属性声明如下所示:

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;

更改所有按钮背景的代码如下所示:

UIImage *backgroundImage = [UIImage imageNamed:@"background.png"];
for(UIButton *button in buttons) {
    [button setBackgroundImage:backgroundImage forState:UIControlStateNormal];
}

答案 1 :(得分:0)

您使用setBackgroundImage:forState:来设置图片。

关于不同的视图部分,这取决于您编写代码的方式。如果带有按钮的视图由不同的视图控制(通过创建实例并使用addSubview:),那么您可以使用instanceName.buttonName直接调用它(只要您将其声明为属性-thanks fichek)。

如果你不手动添加视图,而是通过IB,你可以让控制另一个按钮图像的按钮指向该类中的IBAction。

如果这些选项都不起作用,您可以随时使用NSNotificationCenter。