2013-04-23 82 views
1

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

有没有办法延迟这一点,直到动画完成。也许在+(void)animateWithDuration的完成部分:...

+0

我猜表格视图也在动画过程中调整大小?尝试将表视图设置为在容器调整大小时不调整大小,并确保容器视图不允许在边界之外进行绘制(-clipsToBounds)。 – Wain 2013-04-23 12:25:11

+0

这可能是它,我想它可能会调整使用支柱和弹簧。 – 2013-04-23 12:38:59

回答

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

我想你可以使用这个。在动画之后你要做什么,你可以在完成块中写下它。

+0

不,我知道该怎么做。我在问题中说过 – 2013-04-23 12:38:15

2

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

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