imagens de atualização iphone UIImageView
-
06-07-2019 - |
Pergunta
Eu tenho uma pergunta bastante básica. Eu tenho vários (5) imagens UIImageView
sobre
minha tela. Quando eu clicar em um botão, eu quero mudar cada imagem
a outra coisa. Eu também quero tocar um som que cada imagem é alterada.
Então eu basicamente quer um som de clique como cada imagem muda.
O problema é que, por alguma razão, se eu tiver dizer 5 imagens,
o som é tocada 5 vezes em primeiro lugar e, em seguida, a mudança de imagens.
É como as imagens apenas atualizar quando o controle de volta para o usuário para entrada.
Como posso "força" para atualizar as imagens assim que eu diga a ele o que imagem para exibição?
Eu sou novo para o iphone / Macworld, para ir fácil em mim: -)
Rick
Solução
É como as imagens apenas atualizar quando o controle de volta para o usuário para entrada.
Isso é exatamente o que acontece. A interface do usuário é atualizado no segmento principal de forma que nenhum atualizações acontecer enquanto seu código está sendo executado.
A fim de alcançar o que você quer, você vai temporizadores necessidade. Dê uma olhada na documentação NSTimer. Você precisa criar um temporizador que dispara um método para alterar a sua segunda imagem e, em seguida, requeue um temporizador para mudar a sua terceira imagem. Não é um método conveniente para criar um temporizador que você precisa: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
[NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(updateImage2:) userInfo:nil repeats:NO];
então, você tem um método:
- (void) updateImage2(NSTimer*)theTimer
{
//Update image 2 here
// play sound 2 here
[NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(updateImage3:) userInfo:nil repeats:NO];
}
Vou deixar para você para implementar o método updateImage3:; -)
Running as atualizações como este dá a thread principal a chance de atualizar a interface do usuário.
Outras dicas
Se você está procurando uma forma de atualizar o UIImageView periodicamente, você pode referenciar o seguinte: http://www.shanison.com/2010/12/ 25 / uiimageview-load-remote-image /
Parece que você está provavelmente carregar as imagens fora de disco ou rede ao jogar um som de forma assíncrona. Talvez você estiver usando AudioServicesPlaySystemSound
juntamente com UIImage +imageWithContentsOfURL:
? O carregamento de imagem e som código real de jogo seria mais útil aqui.
Isso funcionou para mim, quando eu queria mudar o fundo uiimageview e atualizá-la e continuar a executar código depois que:
-(void)imgTapped_event:(UIImageView*)imgViewTapped
{
imgViewTapped.backgroundColor=[UIColor whiteColor];
//let the system update ui changes
[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0f]];
//continue your code execution, play sounds etc...
//my helper method to play sound
[self playSound:@"goodAnswer" sync:YES loops:0];
}