代码适用于iPhone模拟器,但不适用于设备

时间:2011-03-22 09:56:51

标签: iphone ipad uiimageview uiimage

我正在使用以下代码在ipad应用中切换两个不同的皮肤/主题。 代码在模拟器中工作正常但在设备上没有。任何人都可以就这可能发生的原因提出任何建议吗?

    if (skin == 1) {

            UIImage* skinSelector = [UIImage imageNamed:@"button1.png"];
            self.imgSkinSelector = [[UIImageView alloc] initWithImage:skinSelector];
            self.imgSkinSelector.center = CGPointMake(88, 88);
            self.imgSkinSelector.alpha = 0;
            [self.landscape addSubview:self.imgSkinSelector];


    }

    else {

            UIImage* skinSelector2 = [UIImage imageNamed:@"button2.png"];
            self.imgSkinSelector = [[UIImageView alloc] initWithImage:skinSelector2];
            self.imgSkinSelector.center = CGPointMake(74, 74);
            [self.landscape addSubview:self.imgSkinSelector];
    //      self.skinSelector.hidden = 1;


    }

3 个答案:

答案 0 :(得分:2)

我曾经遇到过Simulator正确选择资源(图片)而不是设备(iPhone)的问题。

至少在我的情况下,事实证明是图像名称的情况。确保图像名称与代码(button.png / Button.png等)

完全一致

只是一个猜测......

答案 1 :(得分:2)

你的图像可能会出现一些问题,它在模拟器中显示得很好但在设备中没有显示...只需尝试使用另一张图像代替它。 感谢

答案 2 :(得分:1)

试试这个:

首先,每次要更改主题时都不要分配 imgSkinSelector 。 Alloc / init只在viewDidLoad / loadView函数中执行一次,如下所示:

self.imgSkinSelector = [[UIImageView alloc] init];

然后在您正在更改主题的函数中,使用以下代码:

if (skin == 1) {

[self.imgSkinSelector setImage:[UIImage imageNamed:@"button1.png"]];
self.imgSkinSelector.center = CGPointMake(88, 88);
self.imgSkinSelector.alpha = 0;
[self.landscape addSubview:self.imgSkinSelector];

} 别的{

[self.imgSkinSelector setImage:[UIImage imageNamed:@"button2.png"]];
self.imgSkinSelector.center = CGPointMake(74, 74);
[self.landscape addSubview:self.imgSkinSelector];

}

希望这适合你。