-2

当一个视图出现时,我尝试创建一个伪动画。这是我的代码:

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    _image1.hidden = NO;
    sleep(1);
    _label1.hidden = YES;
    sleep(1);
    _image2.hidden = NO;
    sleep(1);
    _label2.hidden = YES;
    sleep(1);
}

但是视图不会在每次 sleep() 之前更新。我必须添加什么,在我显示或隐藏图像或标签后视图将被更新?

4

2 回答 2

1

尝试这个:

[_image1 performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool:true] afterDelay:1];
[_label1 performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool:false] afterDelay:2];
[_image2 performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool:true] afterDelay:3];
[_label2 performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool:false] afterDelay:4];
于 2013-09-09T19:26:03.207 回答
0

您不能使用sleep,因为它会停止您当前的线程并阻止您的应用程序更新显示。

我建议使用...

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5]; // you can also set this to 0.0
[UIView setAnimationDelay:1.0]; // the delay

// your changes which should be animated, example:
_image1.alpha = 0.0;

[UIView commitAnimations];

简单且可扩展。

于 2013-09-09T19:22:04.557 回答