如何在UIView中引入一个小延迟?

时间:2011-11-23 06:00:39

标签: ios uiview delay

如何在视图加载到显示时间之间引入一个小延迟。

半秒钟没问题。是否有一种更优雅的方式来处理另一个sleep (1)

关于我想做什么的更多细节:

 UIImageView *cardView = [[UIImageView alloc] initWithFrame
             :CGRectMake([thisCard xPosition], [thisCard yPosition], 79 , 123)];
        [cardView setImage:[ thisCard faceImage]];
        cardView.transform = CGAffineTransformMakeRotation(.34906585);

       // SLEEP HERE FOR .5 SECONDS

        [thisCard setOwnImageView:cardView];

        [self addSubview:cardView];

2 个答案:

答案 0 :(得分:6)

将所有子视图的初始状态设置为隐藏,并在viewDidLoad中添加以下代码:

    double delayInSeconds = 0.5;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        // unhide views, animate if desired
    });

您也可以使用performSelector:afterDelay:

答案 1 :(得分:4)

简单。看看这个:

[self performSelector:@selector(fadeOutDialog) withObject:nil afterDelay:2.0];

在延迟2秒后,它会执行'fadeOutDialog'方法。