Код работает на симуляторе iPhone, но не на устройстве - PullRequest
0 голосов
/ 22 марта 2011

Я использую следующий код для переключения между двумя различными скинами / темами в приложении 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 ]

2 голосов
/ 22 марта 2011

Однажды я столкнулся с проблемой, когда симулятор правильно выбирал ресурсы (изображения), но не устройство (iPhone).

По крайней мере, в моем случае это произошло с именами изображений. Убедитесь, что имя изображения точно такое же, как написано в коде (button.png / Button.png и т. Д.)

Просто предположение ...

2 голосов
/ 22 марта 2011

может привести к некоторой проблеме с вашими изображениями, она хорошо отображается в симуляторе, но не в устройстве ... просто попробуйте использовать другое изображение вместо этого. спасибо

1 голос
/ 22 марта 2011

Попробуйте это:

Во-первых, не выделяйте 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];

}

Надеюсь, это работает для вас.

...