2关于自定义UITableView的问题

时间:2012-07-09 01:17:01

标签: objective-c uitableview core-animation

我有2个问题,我无法回答。

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

问题在于,当我选择另一个单元格时,没有明显的方法来折叠其他单元格。我作为临时修复程序所做的是在您选择单元格时运行循环,并且在每个单元格上,如果它不是您选择的单元格,则会将其折叠。这看起来效率不高,有没有人有想法?

第二个问题是,每当我折叠一个单元格时,它就会动画化。但是它会消除详细的子视图类型,有没有办法等到单元格完成动画移除它?我找不到合适的委托方法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

我没有对此进行过测试,而且我已经没有记忆了,所以如果它不能按照您的意愿行事,那就很抱歉,但也许它可以帮助您朝着正确的方向前进。

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