0

所以我有一个 iOS5 应用程序(xcode 4.2),我有一个视图控制器,其中 UIImageView 设置为某个图像。我想在 2 秒后将此图像更改为另一张图像。没有用户交互,唯一需要做的就是让图像在 2 秒后发生变化。我找到了关于 dispatch_time 的信息,所以我尝试了一下。

如果您在 main.m 中键入 dispatch_time,它会为您提供几行代码,您需要插入 2 秒后它应该执行的操作。我的问题:

  1. dispatch_time 代码是否确实要进入 main.m ?假设此应用程序除了更改 UIImageView 以在 2 秒后显示另一张图像之外什么都不做。

  2. 如何从 main.m 引用 UIImageView?视图控制器 .h 文件中的声明如下:

    @property (weak, noatomic) IBOutlet UIImageView *Image;

4

2 回答 2

2

在您的视图控制器中使用调度代码,可能在viewDidLoad

- (void)viewDidLoad {
    ...

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
        self.Image.image = [UIImage imageNamed:@"anotherImage.png"];
    });
}
于 2012-07-13T05:27:59.493 回答
0

不,它不应该进入 main.m。您应该将其放入视图控制器的 init 或 viewDidLoad: 方法中。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{

    self.imageView.image = otherImage; });

于 2012-07-13T05:29:11.740 回答