2012-07-06 125 views
0

我用自定义单元格创建了一个表格。对于每个单元格,我都创建了一个将当前单击单元格向上移动的动画。问题出在当前的动画单元格中,例如索引第2行并回到索引为1的父单元格中。
我希望动画单元格位于父元素的前面。 如果我将表格向下滚动超过480px,这是iPhone屏幕的大小,然后再次单击与索引第2行相同的单元格,单元格将很好地重叠父单元格。问题如下图所示。重叠表格单元格动画

Image showing the problem

回答

0

你需要获得细胞,并把它在视图层次结构的前面。但是,获取单元并不是立即显而易见的:您不能在控制器中调用tableView:cellForRowAtIndexPath:,因为它将会出列或创建新单元。您需要做的是在桌面视图上调用cellForRowAtIndexPath:,并在开始动画之前将其放在前面。

UIView* theCell = [tableView cellForRowAtIndexPath:someIndexPath]; 
[theCell.superview bringSubviewToFront:theCell]; 

您可以安全地对所有要进行动画处理的细胞做到这一点,因为它返回nil如果他们不是在屏幕上可见。