UITableView beginUpdates/endUpdates回调

sam*_*tte 8 iphone animation uitableview ios

我正在使用beginUpdates/endUpdates块对tableView进行更改.在整个过程中,我需要更新一个阴影,以便它反映tableView的当前组成.

我尝试为tableView设置KVO,contentSize但只有endUpdates在动画完成后才会调用它.我想要的是每次contentSize改变时调用它(即使只是一个像素).有没有办法实现这个目标?

Rud*_*vič 24

那这个呢?

[CATransaction begin];

[CATransaction setCompletionBlock:^{
    // animation has finished
}];

[tableView beginUpdates];
// do some work
[tableView endUpdates];

[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)


XJo*_*nes 0

很抱歉,我认为你做不到这一点。当您在 after 中对表进行更改时,beginUpdates这些更改将作为单个动画 after 进行动画处理endUpdates。这些动画期间没有动画回调。我还没有尝试过这个,所以不知道它是否适合这个,但你可以尝试嵌套beginUpdatesendUpdates在每次之后更新你的影子endUpdates

  • 仅供参考:beginUpdates 和 endUpdates 的调用可以嵌套。如果不在该块内进行插入、删除和选择调用,则行计数等表属性可能会变得无效。 (2认同)