Анимация iPhone View воспроизводит 2 симуляции на Симуляторе, только 1 на устройстве - PullRequest
0 голосов
/ 15 февраля 2010

У меня тут странный вопрос. У меня есть две анимации, настроенные для простого перелистывания страниц. Затем у меня есть кнопка, которая случайным образом генерирует 1 или 0. Если число равно 0, то оно выполняет одну анимацию, если его 1, оно выполняет другую.

Проблемы, с которыми я сталкиваюсь, состоят в том, что на симуляторе все работает нормально, но на устройстве не выполняется анимация, если случайное число равно 0.

Какие-нибудь подсказки?

    -(IBAction)pageTurn:(id)sender {
    int randomNumber = arc4random() %2;
    NSLog(@"randomNumber = %d", randomNumber);
    if (randomNumber == 0) {
        [self turnPageForward];
    } else {
        [self turnPageBackward];
    }
}

-(void)turnPageForward {
    NSArray *myImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"PageTurnOne.png"],
                         [UIImage imageNamed:@"PageTurnTwo.png"],
                         [UIImage imageNamed:@"PageTurnThree.png"],
                         [UIImage imageNamed:@"PageTurnFour.png"],
                         [UIImage imageNamed:@"PageTurnFive.png"],
                         [UIImage imageNamed:@"PageTurnSix.png"],
                         [UIImage imageNamed:@"PageTurnSeven.png"],
                         [UIImage imageNamed:@"PageTurnEight.png"],
                         [UIImage imageNamed:@"PageTurnNine.png"],
                         nil];

    UIImageView *myAnimatedView = [UIImageView alloc];
    [myAnimatedView initWithFrame:CGRectMake(0, 0, 320, 480)];
    myAnimatedView.animationImages = myImages;
    myAnimatedView.animationDuration = .5; // seconds
    myAnimatedView.animationRepeatCount = 1; // 0 = loops forever
    [myAnimatedView startAnimating];
    [self.view addSubview:myAnimatedView];
    [myAnimatedView release]; 
}

-(void)turnPageBackward {
    NSArray *myImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"PageTurnNine.png"],
                         [UIImage imageNamed:@"PageTurnEight.png"],
                         [UIImage imageNamed:@"PageTurnSeven.png"],
                         [UIImage imageNamed:@"PageTurnSix.png"],
                         [UIImage imageNamed:@"PageTurnFive.png"],
                         [UIImage imageNamed:@"PageTurnFour.png"],
                         [UIImage imageNamed:@"PageTurnThree.png"],
                         [UIImage imageNamed:@"PageTurnTwo.png"],
                         [UIImage imageNamed:@"PageTurnOne.png"],
                         nil];

    UIImageView *myAnimatedView = [UIImageView alloc];
    [myAnimatedView initWithFrame:CGRectMake(0, 0, 320, 480)];
    myAnimatedView.animationImages = myImages;
    myAnimatedView.animationDuration = .5; // seconds
    myAnimatedView.animationRepeatCount = 1; // 0 = loops forever
    [myAnimatedView startAnimating];
    [self.view addSubview:myAnimatedView];
    [myAnimatedView release]; 
}

1 Ответ

1 голос
/ 15 февраля 2010

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

Другая связанная с этим возможность заключается в том, что ресурс не был добавлен должным образом, поэтому он не включен в окончательную сборку для устройства. Я бы проверил файлы изображений в методе, который не работает.

Вы также должны подтвердить, что turnPageForward вызывается вообще. Это даст вам ключ к пониманию того, в чем заключается проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...