0

我有 2 个问题无法回答。

我有一个 UITableView,当你触摸一个单元格时,它会改变它的高度并插入一个包含一些细节的子视图。

问题是当我选择另一个单元格时,没有明显的方法可以折叠另一个单元格。我作为临时修复所做的就是在您选择一个单元格时运行一个循环,并且在每个单元格上,如果它不是您选择的那个,它会折叠它。这似乎效率不高,有人有想法吗?

第二个问题是,每当我折叠一个单元格时,它就会动画。但它删除了细节子视图有点刺耳,有没有办法等到单元格完成动画才能删除它?我找不到合适的委托方法。

提前致谢。

4

1 回答 1

1

也许最好的方法是有一个变量来存储先前接触的单元格的索引路径(行)。然后,测试当前单元格的索引是否不等于前一个单元格,折叠前一个单元格并打开新的单元格。

对于您的第二个问题,您能否在删除子视图之前不为折叠设置动画?我假设您正在使用[UIView beginAnimations](或类似的东西)。设置动画的持续时间[UIView setAnimationDuration:1.0],然后在提交动画后,执行[self performSelector:@selector(collapseCell) withObject:nil afterDelay:1.0].

我没有对此进行测试,而且我的记忆力要消失了,如果它没有像您希望的那样工作,很抱歉,但也许它可以让您朝着正确的方向前进。

编辑:抱歉,我没有看到你的“核心动画”标签。第二种解决方案可能不适合您。

于 2012-07-09T01:29:17.400 回答