Iphone 当UITableView停止滚动时,如何获取回调?

Iphone 当UITableView停止滚动时,如何获取回调?,iphone,objective-c,ipad,Iphone,Objective C,Ipad,在我的iPhone应用程序中,我有一堆代码在一个方法中运行。在方法的末尾,我有几行需要延迟,所以它们只能在之前的内容之后运行,这是因为正在进行动画制作,我需要在动画完成后运行此代码 我知道我可以使用NSTimer,但我想尝试一些更优雅或更干净的东西。您可以在第一个过程中使用: – performSelector:onThread:withObject:waitUntilDone: 这将阻止线程,直到进程完成 在此之后,您的下一条语句将开始执行。iOS的标准(也是非常方便的)执行方法是回调块。考

在我的iPhone应用程序中,我有一堆代码在一个方法中运行。在方法的末尾,我有几行需要延迟,所以它们只能在之前的内容之后运行,这是因为正在进行动画制作,我需要在动画完成后运行此代码


我知道我可以使用NSTimer,但我想尝试一些更优雅或更干净的东西。

您可以在第一个过程中使用:

– performSelector:onThread:withObject:waitUntilDone:
这将阻止线程,直到进程完成

在此之后,您的下一条语句将开始执行。

iOS的标准(也是非常方便的)执行方法是回调块。考虑一个简单的UI动画:

[UIView animateWithDuration:1
                 animations:^{
                   myView.alpha = 1; // fade-in myView
                 }
                 completion:^(BOOL finished){
                     // this code gets called when the animations block above is finished
                 }];

您可以实现自己的方法,将完成块作为参数,并在执行结束时调用它。以下是您应该开始的步骤。

如果您在动画结束后仍需要延迟,您可以使用以下命令调用第二个进程:

[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>]
[自执行选择器:withObject:afterDelay:]

您使用什么方法制作动画?他们可能有一个
completion:
block callback在您可以使用的末尾,这绝对是处理它的合适方法(而不是额外的计时器)。很抱歉没有提到这一点,我在UITableView上使用的是
ScrollToRowatineXpath
方法,但它没有可用的块方法。@JoshKahane您应该问一个更具体的问题,例如,当UITableView停止滚动时,如何获得回调?我知道为什么会有帮助,抱歉。我试着让它尽可能广泛,这样我或其他人就可以将任何答案应用到尽可能多的情况。仅此而已。UITableView是UIScrollView的一个子类,它的委托中有
-(void)scrollView diEndScrollingAnimation:(UIScrollView*)scrollView
。你试过用它吗?将
添加到tableview的委托中,看看它是否会触发该方法。