【问题标题】:Overlapping table cells animation重叠表格单元格动画
【发布时间】:2023-03-26 18:55:01
【问题描述】:
我用自定义单元格制作了一个表格。对于每个单元格,我创建了一个动画,将当前点击的单元格向上移动。问题出在当前动画单元格中,例如索引第 2 行并返回到索引为 1 的父单元格。
我希望动画单元格在父母面前。
如果我向下滚动表格超过 480 像素,这是 iPhone 屏幕的大小,然后再次单击索引第 2 行的相同单元格,该单元格将恰好与父单元格重叠。问题如下图所示。
【问题讨论】:
标签:
objective-c
ios
cocoa-touch
ios5
ios4
【解决方案1】:
您需要获取单元格并将其置于视图层次结构的最前面。但是,获取单元格并不是很明显:您不能在控制器中调用tableView:cellForRowAtIndexPath:,因为这会出列或创建一个新单元格。您需要做的是在表格视图本身上调用cellForRowAtIndexPath:,并在开始动画之前将其置于最前面。
UIView* theCell = [tableView cellForRowAtIndexPath:someIndexPath];
[theCell.superview bringSubviewToFront:theCell];
您可以安全地对所有要设置动画的单元格执行此操作,因为如果它们在屏幕上不可见,它会返回 nil。