方法:(的CGRect)

问题描述:

我把一起在一个UITableView饲料。我正在为我的UITableViewCells添加自定义UIView,并正在绘制drawRect:(CGRect)中的单元格的所有内容。方法:(的CGRect)

这很好,当用户点击一个单元格时,我展开了单元格,并且子视图上的UITableViewCell再次调用了drawRect:(CGRect),并且绘制了所有内容以反映这一点。 这对性能很好,UITableViewCell只包含一个子视图,所有内容都直接绘制到CGContext中。现在

,我抛光料的功能,我想补充一些动画,以使其更清楚发生了什么用户。

我想在单元展开之前,期间和之后做动画。在drawRect中的做法是做一个“一次性”的方式,我明白,权衡是一样的优势,你没有一堆子视图的引用,你可以动画等 我怎么能去关于实施动画?

有没有呼吁子视图时cellHeight改变,我可以挂接到委托方法。如果我这样做,我必须将所有需要动画的元素制作成子副本,然后制作动画,删除它们,然后在上下文中重新绘制它们。

如果我尝试为每个可以显示的可想象的事件/动画制作条件块,我有点害怕走错了一条错误的路径,并最终失去drawRect的性能和可读性。

希望有人能指出正确的方向。 在此先感谢。

当调整您的细胞,这样做是为了动画单元调整尺寸处理:

[tableView beginUpdates]; 
[tableView reloadRowsAtIndexPaths:... withRowAnimation:YES]; 
[tableView endUpdates]; 

现在您单元的drawRect:将呼吁动画,您可以衡量和实施的持续时间。可能出现

一个问题,如果一个一致的帧率并不总是能够达到,你不完成的动画。

我想一个更好的解决方案是使用CALayer S和有动画的绘制。