我在viewWillAppear中编写了一些代码,以便更改某些按钮的背景图像。它在模拟器中工作正常。但是,当我将它加载到真实设备时,它不起作用。该设备是IOS5.1.1。
任何人都知道这是什么问题?谢谢!
(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
...
//set dataTypeSelect buttons background
UIImage *tmpImage = [UIImage imageNamed:@"White.png"];
[self.dataTypeSelectBut0 setBackgroundImage:tmpImage forState:UIControlStateNormal];
[self.dataTypeSelectBut1 setBackgroundImage:tmpImage forState:UIControlStateNormal];
[self.dataTypeSelectBut2 setBackgroundImage:tmpImage forState:UIControlStateNormal];
tmpImage = [UIImage imageNamed:@"Cyan.png"];
iTDLAppDelegate *tmpAppDelegate = (iTDLAppDelegate *)[[UIApplication sharedApplication] delegate];
switch(tmpAppDelegate.viewingDataType)
{
case EnumDataType_HkHorse:
[self.dataTypeSelectBut0 setBackgroundImage:tmpImage forState:UIControlStateNormal];
break;
case EnumDataType_S1:
[self.dataTypeSelectBut1 setBackgroundImage:tmpImage forState:UIControlStateNormal];
break;
case EnumDataType_S2:
[self.dataTypeSelectBut2 setBackgroundImage:tmpImage forState:UIControlStateNormal];
break;
}
...
}
答案 0 :(得分:3)
我已经确定它是由图像文件名引起的。
文件名是“White.PNG”和“Cyan.PNG”。
我的代码如下
UIImage *tmpImage = [UIImage imageNamed:@"White.png"];
UIImage *tmpImage = [UIImage imageNamed:@"Cyan.png"];
它们在模拟器中工作正常但是真实的设备。
我发现tmpImage
的返回值在实际设备中为空。
现在我将它们改为
UIImage *tmpImage = [UIImage imageNamed:@"White.PNG"];
UIImage *tmpImage = [UIImage imageNamed:@"Cyan.PNG"];
他们现在都可以正常工作。 :)