заставляя кнопку поменять изображения - PullRequest
0 голосов
/ 03 марта 2011


Я работаю над соответствующей программой для iPad, и когда пользователь выбирает кнопку, изображение «раскрывается», а затем, когда пользователь выбирает вторую кнопку, обнаруживается другое изображение.Затем я программно проверяю совпадение и, если нет, возвращаю оба изображения кнопок в исходное состояние.

Это работает нормально, за исключением случаев, когда совпадение НЕ выполнено, переключение происходит так быстро, что у вас нет времени, чтобы увидеть, что вы «обнаружили».Я пытался уснуть, но изображение никогда не переключалось в открытое состояние ... Мысли?

Код для этого следующий:

//Take action on the tap of one of the buttons
if(isFirstSelection)
{
    firstSelection = [(UIButton *)sender tag];
    tempImageItem = [tileArray objectAtIndex:firstSelection];
    tempImage = [tempImageItem tileImage];
    firstSelectionName = [[NSString alloc] initWithString:[tempImageItem tileName]];
    [(UIButton *)sender setImage:tempImage forState:UIControlStateNormal];
    tempButton = sender;
    isFirstSelection = NO;       
}else{
    secondSelection = [(UIButton *)sender tag];
    tempImageItem = [tileArray objectAtIndex:secondSelection];
    tempImage = [tempImageItem tileImage];
    secondSelectionName = [[NSString alloc] initWithString:[tempImageItem tileName]];
    [(UIButton *)sender setImage:tempImage forState:UIControlStateNormal];

    //Two game pieces have been removed so check to see if they are a match
    if([firstSelectionName isEqualToString:secondSelectionName])
    {
        //Match found
        //do something

    }else{
        **//NO MATCH FOUND 
        [NSThread sleepForTimeInterval:3]; 
        //Display the checker board pieces again 
        [(UIButton *)sender setImage:[UIImage imageNamed:@"originalImage"] forState:UIControlStateNormal];** 

    }
    //Reset isFirstSelection Flag to YES for next selection
    isFirstSelection = YES;           
}

Ответы [ 2 ]

0 голосов
/ 04 марта 2011

Для «запуска этого кода за X секунд» я предпочитаю:

[self performSelector:@selector(spinWheel:) withObject:[NSNumber numberWithUnsignedInt:0] afterDelay:delay];

не нужно возиться с объектами таймера.

0 голосов
/ 03 марта 2011

Из того, что я понимаю, вы хотите поместить оригинальное изображение кнопки через 3 секунды, чтобы у пользователя было время посмотреть, что произошло.Вы должны взглянуть на класс NSTimer, чтобы вызвать этот код

[(UIButton *)sender setImage:[UIImage imageNamed:@"originalImage"] forState:UIControlStateNormal];

через 3 секунды.

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