Повторное использование UIView - PullRequest
1 голос
/ 01 сентября 2009

У меня есть UIView, который отображает изображение в зависимости от того, насколько хорошо пользователь сделал на уровне, затем у пользователя есть возможность перейти к следующему уровню, и как только они закончат с этим, UIView снова отобразит с изображением в зависимости от о том, как хорошо они сделали

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

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

Я создал UIView с помощью Interface Builder

Любая помощь будет оценена

//this is the code to access the UIView
-(void)DisplayStatsForLevel:(NSInteger)level ScoreEarned:(NSInteger)pScore NumberHit:(NSInteger)pNumberHit TotalTargets:(NSInteger)pTotalTargets MedalEarned:(NSInteger)pMedalEarned BulletsFired:(NSInteger)pBulletsFired
{
switch(level)
{
    case 1: 
        [levelOne removeFromSuperview];
        [levelOne release]; levelOne = nil;
        [self.view addSubview:levelComplete];
        [levelComplete SetupScreen:pScore NumberHit:pNumberHit TotalTargets:pTotalTargets MedalEarned:pMedalEarned BulletsFired:pBulletsFired];
        break;
    case 2:
        [levelTwo removeFromSuperview];
        [levelTwo release]; levelTwo = nil;
        [self.view addSubview:levelComplete];
        [levelComplete SetupScreen:pScore NumberHit:pNumberHit TotalTargets:pTotalTargets MedalEarned:pMedalEarned BulletsFired:pBulletsFired];
        break;
    default:
        break;
}

}

//this is the code that releases the UIView
-(void)NextLevel:(NSInteger)nextLevel
{
switch (nextLevel)
{
    case 2:
        [levelComplete removeFromSuperview];
        [levelComplete release]; levelComplete = nil;
        [self.view addSubview:levelTwo];
        [levelTwo SetupLevel];
        break;
    default:
        break;
}

}

//this is the code that displays the image
switch (medalWon)
{
    case 1:
        medalImage = [UIImage imageNamed:@"Bronze.png"];
        break;
    case 2:
        medalImage = [UIImage imageNamed:@"Silver.png"];
        break;
    case 3:
        medalImage = [UIImage imageNamed:@"Gold.png"];
        break;
    case 4:
        medalImage = [UIImage imageNamed:@"Platinum.png"];
        break;
    default:
        break;
}

medal =[[UIImageView alloc] initWithFrame:medalFrame];
medal.image = medalImage;
[medalImage release];
[medal setNeedsDisplay];

[self addSubview:medal];

1 Ответ

1 голос
/ 01 сентября 2009

Я только что попробовал нечто подобное, и чтобы получить два перекрывающихся изображения, мне пришлось дважды вызвать это:

medal = [[UIImageView alloc] initWithFrame: medalFrame]; medal.image = medalImage; [выпуск медали изображения]; [medal setNeedsDisplay];

[self addSubview: medal];

Можете ли вы проверить и посмотреть, делаете ли вы это?

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