我正在使用以下代码在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;
}
答案 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];
}
希望这适合你。