iPhone - UITableViewCell高度变化的平滑动画,包括内容更新

Oli*_*ver 22 iphone animation resize uitableview

可能重复:
您可以选择UITableViewCell上的高度更改动画吗?

我有一个表格视图,您可以在其中单击swich进入单元格,表格视图的许多单元格可能会更改其高度.计算哪些单元格会改变它们的大小有点复杂,所以我不想调用两次相同的代码.

我有一个heightForRowAtIndexPath方法(这是一个复杂的方法).

有没有办法让细胞生长或减少特征的动画而不会影响不改变的特征?

我已经尝试过UIViewAnimations,reloadData用于带动画的部分,但是我没有找到任何平滑的东西.我试图抓住每个必须更改的单元格,并在每个单元格上调用带动画的reloadData.它接近工作,但细胞一个接一个地更新.正如我之前所说,我不想这样做,因为我必须调用两次heightForRowAtIndexPath方法.

我想要的是能够使每个细胞变得生动的东西,这些细胞具有变化的高度,像生长或减少运动,而不是褪色.

你知道这样做的方法吗?还有一件事,当尺寸变化时(一些文字添加,背面颜色变化,以及类似的东西),单元格的内容会发生一些变化

Ole*_*ann 61

UITableView有一个巧妙的技巧来动画单元格高度的变化:如果你向表格视图发送一个空的更新块,它将不会插入或删除任何单元格,但它仍然会重新计算整个表格的单元格高度.所以即使这段代码看起来很奇怪,它应该这样做:

[tableView beginUpdates];
[tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)

如果您还想更改更新的单元格的内容,您当然必须reloadRowsAtIndexPaths:withRowAnimation:向更新块添加一个或多个调用.