анимация UIImageView запускается только один раз - PullRequest
1 голос
/ 07 апреля 2011

Я пишу игру. После того, как злоумышленник убьет солдата, появится UIImageView, показывающее опыт + 1.

Теперь анимация отображается правильно, когда я убиваю 1-го солдата, но не отображается , когда я убиваю 2-го солдата и позже.

коды анимации, имя метода - showGainXPAnimationAfterKillSoldier.

    imgGainXPAfterKillSoldier.hidden = FALSE;
    [imgGainXPAfterKillSoldier.layer removeAllAnimations];
    imgGainXPAfterKillSoldier.frame = CGRectMake(140, 220, 53, 19);
    // a loop to show animation.
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDuration:1.5];
    //imgGainXPAfterKillSoldier.frame = CGRectMake(100, 200, 53, 19);
    CGAffineTransform transform = CGAffineTransformMakeTranslation(-112, 215);
    imgGainXPAfterKillSoldier.transform = transform;
    //imgGainXPAfterKillSoldier.alpha = 0.0f;
    [UIView commitAnimations];

вызов анимационных кодов,

    if (killedSoldierCount>0) {
    // add imgview to show gained XP.
    if (imgGainXPAfterKillSoldier) {
        MWLog(@"remove it!");
        [imgGainXPAfterKillSoldier.layer removeAllAnimations];
        [imgGainXPAfterKillSoldier removeFromSuperview];

    }
    imgGainXPAfterKillSoldier.frame = CGRectMake(140, 220, 53, 19);
    imgGainXPAfterKillSoldier.hidden = TRUE;
    //imgGainXPAfterKillSoldier.alpha = 1.0f;
    [self.view addSubview:imgGainXPAfterKillSoldier];

    switch (killedSoldierCount) {
        case 1:
            // show add experience animation after kill soldier.
            MWLog(@"kill a soldier, show XP+1 animation.");
            [self showGainXPAnimationAfterKillSoldier:1];
            break;

в чем проблема? Заранее спасибо!

1 Ответ

1 голос
/ 11 апреля 2011

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

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