1

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

无论如何要延迟这个,直到动画完成。也许在 +(void)animateWithDuration:... 的完成部分

4

2 回答 2

2

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

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

于 2013-04-23T12:57:09.353 回答
0
[UIView animateWithDuration:(NSTimeInterval) animations:^{
        //Animation code
    } completion:^(BOOL finished) {
        //after animation completion
    }]

我认为您可以使用它。无论你在动画之后做什么,你都可以在完成块中编写它。

于 2013-04-23T12:28:03.830 回答