我希望有人能引导我朝着正确的方向前进。
我需要能够一次一个地更新屏幕上的图像 按下按钮后。它们似乎只是更新了 在周期结束时,这不是我需要它工作的方式。
我创建了一个小例子来展示我在做什么。 基本上我在屏幕上有3个图像。按下按钮时 我想更新第一张图片,播放声音,等待一秒钟 更新下一个等。
但是,我只听到1个声音,最后所有图像都会更新。
似乎很简单。我应该怎么做?
#import "testappViewController.h"
@implementation testappViewController
@synthesize p1,p2,p3; //UIImageViews
@synthesize button1;
@synthesize volleyFileID;
- (IBAction)buttonpressed:(id)sender
{
NSString *TLS = @"RQP.png";
NSString *volleyPath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"caf"];
CFURLRef volleyURL = (CFURLRef ) [NSURL fileURLWithPath:volleyPath];
AudioServicesCreateSystemSoundID (volleyURL, &volleyFileID);
TLS = @"RQP.png";
UIImage *sampleimage= [[UIImage imageNamed:TLS] retain];
p1.image = sampleimage;
AudioServicesPlaySystemSound(volleyFileID);
[NSThread sleepForTimeInterval:0.5];
p2.image = sampleimage;
AudioServicesPlaySystemSound(volleyFileID);
[NSThread sleepForTimeInterval:0.5];
p2.image = sampleimage;
AudioServicesPlaySystemSound(volleyFileID);
}
答案 0 :(得分:1)
你不应该在这里使用 - [NSThread sleepForTimeInterval:]。尝试使用 - [NSObject performSelector:withObject:afterDelay:],后两个图像更改为单独的方法。然后,您的事件循环将正常运行,您的声音将播放,整个应用程序将继续响应。