Ios 延迟UITableView以隐藏UITableView单元格

Ios 延迟UITableView以隐藏UITableView单元格,ios,xcode,uitableview,uiviewanimation,Ios,Xcode,Uitableview,Uiviewanimation,我的问题是我有一个UIContainerView,它有一个子视图UITableView。 当用户按下按钮时,此UIContainerView通过设置其帧大小的动画来切换打开/关闭。 我遇到的问题是,由于帧大小立即设置,动画会随着时间的推移而发生,因此在动画完成之前,TableView单元格会“出列”并消失。我猜是因为tableView认为它不再显示 是否仍有延迟此操作的方法,直到动画完成。也许在+(void)animateWithDuration的完成部分: [UIView animateWit

我的问题是我有一个UIContainerView,它有一个子视图UITableView。 当用户按下按钮时,此UIContainerView通过设置其帧大小的动画来切换打开/关闭。 我遇到的问题是,由于帧大小立即设置,动画会随着时间的推移而发生,因此在动画完成之前,TableView单元格会“出列”并消失。我猜是因为tableView认为它不再显示

是否仍有延迟此操作的方法,直到动画完成。也许在+(void)animateWithDuration的完成部分:

[UIView animateWithDuration:(NSTimeInterval) animations:^{
        //Animation code
    } completion:^(BOOL finished) {
        //after animation completion
    }]

我想你可以用这个。无论你在动画制作后做什么,你都可以把它写在完成块中。

一个快速而肮脏的解决方案是在帧的底部添加一个不透明的UIView,并向上设置动画以产生折叠效果。在animateWithDuration方法的完成块中,您可以更改容器视图的帧


如果不知道你想要达到的视觉效果,很难给出一个真正好的答案。更合适的方法是删除表格视图单元格以提供动画效果,但它看起来可能不太正确…

我猜表格视图在动画过程中也在调整大小?尝试将表视图设置为在容器调整大小时不调整大小,并确保容器视图不允许在边界之外绘制(-clipsToBounds)。可能就是这样,我认为它可能使用struts和Spring调整大小。