动画 UITableView 调整大小

Posted

技术标签:

【中文标题】动画 UITableView 调整大小【英文标题】:Animating UITableView resize 【发布时间】:2012-04-02 10:38:36 【问题描述】:

我正在使用以下代码为 UITableView 的大小调整设置动画,以便在 UITableView.isEditing 时为带有额外控件的 UIView 让路。

[UIView animateWithDuration:3 // 0.2 but slowed down to easily see difference
                      delay:0
                    options:UIViewAnimationOptionCurveEaseOut 
                 animations:^
                     [self.selectControlsView setFrame:CGRectMake(0, self.tableView.frame.size.height-self.selectControlsView.frame.size.height, self.selectControlsView.frame.size.width, self.selectControlsView.frame.size.height)];
                     [self.tableView setFrame:CGRectMake(0, 0, self.tableView.frame.size.width, self.tableView.frame.size.height-self.selectControlsView.frame.size.height)];
                 
                 completion:nil];

这很好用,只是 UITableView 的动画速度似乎比 UIView 快(即使我在 UITableViews 帧之前调整 UIViews 帧),导致在背景动画期间出现黑色闪烁。

有没有办法同时为这两个视图设置动画?

【问题讨论】:

我可以使用两个单独的动画块,并在 UITableView 动画的块上稍有延迟,但这似乎有点小技巧。欢迎任何更好的想法。 【参考方案1】:

这个问题是因为控制器是 UITableViewController 的子类。我现在继承 UIViewController 并将 UITableView 添加为子视图,用于添加新视图和调整 UITableView 大小的动画现在可以按预期工作。

【讨论】:

以上是关于动画 UITableView 调整大小的主要内容,如果未能解决你的问题,请参考以下文章

调整帧大小后的 UITableView 滚动速度

自行调整特定 UITableView 单元的大小

通过 UITextView 内容大小调整 UITableView 单元格的大小

在 UITableView 上方调整 UIView 的大小

UITableView 单元格在调整大小后不响应输入

具有自定义 UINavigationBar 大小的 UITableView“自动调整大小”