我需要根據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