我需要根据View初始化时将设置的属性更改其中一个视图的背景。 这可能吗? 我有背景设置为UIImageView,如果我将它设置为界面生成器中的图像它的作品,但我不能以编程方式更改背景。根据属性在iPhone应用程序中更改视图背景
这里是我使用的(我基于它关闭该加载图像到UITableCell教程)代码:
+ (void) initialize {
/* The threat level images are cached as part of the class,
so they need to be explicitly retained.
*/
redLevel = [[UIImage imageNamed:@"red.png"] retain];
yellowLevel = [[UIImage imageNamed:@"yellow.png"] retain];
greenLevel = [[UIImage imageNamed:@"green.png"] retain];
}
-(id) initWithThreatLevel:(NSInteger) threatLevel {
if (self = [super initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]]) {
switch (threatLevel) {
case 1:
self.threat_levelImageView.image = greenLevel;
break;
case 2:
self.threat_levelImageView.image = yellowLevel;
break;
case 3:
self.threat_levelImageView.image = redLevel;
break;
default:
self.threat_levelImageView.image = greenLevel;
break;
}
}
return self;
}
有两个问题:1)是否在-initWithThreatLevel之前调用了initialize? 2)是thread_levelImageView正确绑定到有问题的UIImageView(使用Interface Builder)? – codelogic 2009-11-03 21:08:51
+初始化由操作系统调用一次,然后才会向类发送消息。所以是的,它被称为beofre initWithThreadLevel。 – 2009-11-03 21:18:52
+初始化不是你想要这种类型的代码的地方。您可以轻松地将图像预加载移动到awakeFromNIB,viewDidLoad或viewWillAppear,并测试它们是否为零,在这种情况下,您可以加载它们。 – mahboudz 2009-11-03 22:05:56