我已经实现了一个带有部分标题的tableView,点击时可以展开单元格。它几乎只是部分标题上的一个大按钮,当它被按下时,我计算需要删除哪些单元格,然后调用:
[tableView beginUpdates];
//delete necessary cells
[tableView endUpdates];我的问题在于它的动画效果。当您打开一个分区,然后打开另一个分区或关闭同一分区,而无需滚动tableView时,它可以很好地工作。但如果您最终滚动了表视图,然后打开了另一个表视图,则会发生一件非常奇怪的事情。其中一个节标题滑到屏幕的底部,然后又回到原来的位置。对于动画,我只调用了deleteRowsAtIndexPathsWithAnimation和与之相反的带有自动tableView动画类型的insert方法。有人知道为什么会这样吗?
有一个名为TVAnimationsGestures的苹果示例代码(如果你只搜索tableview,它就会出现),它和我的程序做同样的事情。如果你想更深入地了解代码和问题,你应该去看看。
谢谢,
发布于 2011-12-21 18:03:25
需要检查的一件事是您在numberOfSectionInTableView和numberOfRowsInSection中返回的值。
我认为当tableview必须滚动时,它会调用这些方法,所以如果它们返回的内容与tableView中的行数不匹配,就会发生奇怪的事情。
因此,只需确保当您删除一行时,您也更新了section中返回的行数。
https://stackoverflow.com/questions/8483137
复制相似问题