如何等到代码完成。 iOS版

时间:2013-03-13 11:21:08

标签: ios objective-c animation

我可以通过此代码调用一些选择器

[self performSelector:<#(SEL)#> onThread:<#(NSThread *)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]

并且线程将一直等到这个选择器工作(如果我设置waitUntilDone:YES)。我的问题是 - 我可以等到某些代码完成吗?

例如,

。我有一些子视图,加载动画。动画持续时间为2秒。如果我在背景视图上做一些动作,在动画时,我有一个错误。我想等到动画结束。我不能制作一个选择器,并使用

[self performSelector:<#(SEL)#> onThread:<#(NSThread *)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]

有什么建议吗? )

3 个答案:

答案 0 :(得分:5)

你可以试试这种方式

-(void)waitUntilDone:(void(^)(void))waitBlock {
    //use your statement or call method here
    if(waitBlock){
        waitBlock();
    }
}

您需要将其用作

[self.tableView waitUntilDone:^{
    //call the required method here                                            
}];

答案 1 :(得分:2)

UIView动画以块样式动画

的形式向您提供
[UIView animateWithDuration:0.25f
                 animations:^{
                   // animations
                 } completion:^(BOOL finished) {
                   // run code when the animation is finished
                 }];

答案 2 :(得分:1)

等到动画结束;然后做其他事情:

例如:

   [UIView animateWithDuration:duration
    animations:^
    {
       //DO ANIMATION ADJUSTMENTS HERE
    }
    completion:^(BOOL finished)
    {
        //ANIMATION DID FINISH -- DO YOUR STUFF
    }];