随时间改变UIImage的图像

时间:2011-05-12 14:20:15

标签: iphone image uiimageview

我想更改UIImageView的图像,3秒后返回第一张图片......这是我的代码:

-(void)change: (UIImageView *)sender
{
    UIImage *image = [UIImage imageNAmed: @"anImage"];
    [sender setImage:image];
    [self performSelector: @selector(doNothing) withObject:nil afterDelay:3];
    [sender setImage: [UIImage imageNamed: @"firstImage"]];
}

它不起作用。

3 个答案:

答案 0 :(得分:0)

尝试:

-(void)change: (UIImageView *)sender
{
    UIImage *image = [UIImage imageNAmed: @"anImage"];
    [sender setImage:image];
    [sender performSelector: @selector(setImage:) withObject:[UIImage imageNamed: @"firstImage"] afterDelay:3];
}

performSelector计划选择器调用有一些延迟。它不会延迟当前方法的执行

答案 1 :(得分:0)

您是否也可以发布doNothing的代码?

如果doNothing确实没有做任何事情,那么正在发生的事情是从下一行执行3秒后调用doNothing方法:

[self performSelector: @selector(doNothing) withObject:nil afterDelay:3];

但是 就是这样,在doNothing方法计划运行之后,直接执行以下行三秒钟:

[sender setImage: [UIImage imageNamed: @"firstImage"]];

换句话说,方法执行不等待你的doNothing方法完成,它只是继续,并且doNothing在一个单独的线程上运行。

答案 2 :(得分:0)

你说在延迟3秒后执行函数doNothing。因此,在3秒后它将被调用,因此在doNothing函数中将图像更改回firstImage。