分组UITableView行动画怪癖

时间:2009-07-28 17:27:46

标签: iphone animation uitableview

我有一个带有几行的分组UITableView,并且我在按钮的切换上输入和输出更多行。问题是,对于我使用的任何行动画类型(顶部和底部),动画看起来很糟糕!这是动画中的截图:

Example
(来源:michaelwaterfall.com

有什么理由让它看起来如此糟糕?或者所有分组表视图动画看起来都令人震惊!?

我认为当一个部分的第一行或最后一行被动画时,它看起来很糟糕,所以我只是想知道是否有任何方法让它看起来更好一点!?否则我想我只会调用reloadData并将其全部显示出来。

感谢您的帮助!

迈克尔

5 个答案:

答案 0 :(得分:12)

如果您同时删除,添加和/或移动UITableView中的多行,则必须将所有这些来电与beginUpdatesendUpdates括起来。否则结果不确定。

例如:

[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:newRows 
                    withAnimation:UITableViewRowAnimationTop];
[tableView deleteRowsAtIndexPaths:invalidRows:
                    withAnimation:UITableViewRowAnimationTop];
[tableView endUpdates];

答案 1 :(得分:0)

我不确定究竟什么看起来很糟糕。从静态图片中很难说清楚。

不幸的是,您无法控制tableviews中的插入/删除动画。它全部由高级UITableView API处理。

唯一的另一个选择是分别和连续地执行动画,看看它是否看起来更好。我这样做是为了消除一些文物。

还可以尝试不同的动画,例如淡入/淡出。不像华而不实,但在某些情况下看起来更好。

答案 2 :(得分:0)

我在分组表视图中使用了动画而没有任何问题,而且它看起来总是很棒。分享一些代码怎么样?也许你在单元格构建中做错了什么......或者虽然不太可能插入行。

答案 3 :(得分:0)

正如其他人所说,发布一些代码会有所帮助。

您是否已在beginUpdates/endUpdates区块内执行多​​次插入/删除操作?

答案 4 :(得分:0)

供将来参考,请参阅#6931544。我发现转换中间的这些任意行可以通过以下方式删除: -

    [self.tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];