如何以不同方式刷新UIImagesViews?

时间:2009-06-17 22:42:59

标签: iphone graphics uiimageview

我希望有人能引导我朝着正确的方向前进。

我需要能够一次一个地更新屏幕上的图像 按下按钮后。它们似乎只是更新了 在周期结束时,这不是我需要它工作的方式。

我创建了一个小例子来展示我在做什么。 基本上我在屏幕上有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);

}

1 个答案:

答案 0 :(得分:1)

你不应该在这里使用 - [NSThread sleepForTimeInterval:]。尝试使用 - [NSObject performSelector:withObject:afterDelay:],后两个图像更改为单独的方法。然后,您的事件循环将正常运行,您的声音将播放,整个应用程序将继续响应。