我可以通过此代码调用一些选择器
[self performSelector:<#(SEL)#> onThread:<#(NSThread *)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]
并且线程将一直等到这个选择器工作(如果我设置waitUntilDone:YES)。我的问题是 - 我可以等到某些代码完成吗?
例如,。我有一些子视图,加载动画。动画持续时间为2秒。如果我在背景视图上做一些动作,在动画时,我有一个错误。我想等到动画结束。我不能制作一个选择器,并使用
[self performSelector:<#(SEL)#> onThread:<#(NSThread *)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]
有什么建议吗? )
答案 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
}];