SectionHeader 打开/关闭动画
我已经实现了一个带有节标题的 tableView,点击时会展开单元格。它几乎只是节标题上的一个大按钮,当按下它时,我计算需要删除哪些单元格,然后调用:
[tableView beginUpdates];
//delete necessary cells
[tableView endUpdates];
我的问题在于这个动画。当您打开一个部分,然后打开另一部分或关闭同一部分而无需滚动 tableView 时,它可以正常工作。但是,如果您最终滚动了表视图,然后打开另一个表视图,就会发生一件非常奇怪的事情。其中一个部分标题滑到屏幕底部,然后返回到原来的位置。对于动画,我只需调用 deleteRowsAtIndexPathsWithAnimation
以及具有自动 tableView 动画类型的相反插入方法。有谁知道为什么会发生这种情况?
有一个名为 TVAnimationsGestures 的苹果示例代码(如果您只搜索 tableview 就会出现),它与我的程序执行相同的操作。如果您想更深入地了解代码和问题,您应该检查一下。
谢谢,
I have implemented a tableView with section headers that unfold cells when tapped. It si pretty much just a big button on the section header and when it is pressed I calculate which cells need to be deleted and then call:
[tableView beginUpdates];
//delete necessary cells
[tableView endUpdates];
My problem lies in the animation of this. It works fine when You open one section and then either open another or close that same one without having to scroll the tableView. But if you do end up scrolling the table view and then you open another one, A very strange thing happens. One of the section headers slides to the bottom of the screen and then back into its place. For the animation I just call deleteRowsAtIndexPathsWithAnimation
and the opposite insert method with the automatic tableView animation type. Does anybody know why this happens?
There is an apple sample code called TVAnimationsGestures (it comes up if you just search for tableview) that does the same thing that my program does. If you want to see more in depth the code and the problem, you should check that out.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要检查的一件事是您在 numberOfSectionInTableView 和 numberOfRowsInSection 中返回的值。
我认为当 tableview 必须滚动时它会调用这些方法,因此如果它们返回的内容与 tableView 中的行数不匹配,就会发生奇怪的事情。
因此,只需确保当您删除一行时,您也会更新返回的部分中的行数。
One thing to check is the the values your returning in numberOfSectionInTableView and numberOfRowsInSection.
I think when the tableview has to scroll it calls those methods, so if you have a mismatch in what they are returning to the number of rows in your tableView strange things can happen.
So just make sure when you remove a row that you also update the number of rows in section which are returned.