2012-06-06 105 views
1

我在viewWillAppear中编写了一些代码,以便更改某些按钮的背景图像。它在模拟器中工作正常。但是,当我将它加载到真实设备时,它不起作用。该设备是IOS5.1.1。setBackgroundImage在模拟器上工作,但真实设备(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; 
    } 

    ... 

} 

回答

3

我指出它是由图像文件名引起的。

文件名是“White.PNG”和“Cyan.PNG”。
我的代码如下

UIImage *tmpImage = [UIImage imageNamed:@"White.png"]; 
UIImage *tmpImage = [UIImage imageNamed:@"Cyan.png"]; 

他们工作在模拟器,但实际的设备罚款。
我发现返回的值tmpImage在实际设备中为null。

现在我把它们改成

UIImage *tmpImage = [UIImage imageNamed:@"White.PNG"]; 
UIImage *tmpImage = [UIImage imageNamed:@"Cyan.PNG"]; 

他们现在工作的优良两者。 :)

+0

如果我能我会给你+100。感谢节省我的时间! – ishahak

相关问题