“分组样式”UITableView的底部(和顶部)单元格具有圆角 - 这是许多Apple iOS和非Apple应用程序中的默认设置。有时通过动画插入单元格,即:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
现在这很好用。 除外:当单元格插入底部单元格下方或顶部单元格上方(对于分组样式表格)时,似乎没有平滑的动画。
我的意思是顶部/底部细胞的角落需要从圆形到不固定的动画(因为它们不再是顶部/底部) - 这种情况发生在一种非常生涩且不像Apple的时尚。
Apple是否曾在应用程序中执行此操作 - 如果是这样,他们如何顺利完成此操作?否则,怎么办呢?
注意 - 我知道这是一个非常小的细节,但我有点完美主义者......!
答案 0 :(得分:6)
查看iOS附带的Weather App,在配置城市的侧视图中,您将看到一个适合这些动画的表格。正如马克·亚当斯所指出的那样,在iOS5中,操作系统有一个枚举可以自动检测应该使用哪个动画。如果您想要在iOS5之前定位,那么在您提交删除的委托方法上,您应该根据行位置确定要删除的单元格,如果它是0,如果它是最后一行,您将使用UITableViewRowAnimationBottom
使用UITableViewRowAnimationTop
如果它位于中间的某个位置,您可能会使用UITableViewRowAnimationTop
,以便该组随动画向上移动,您可能想要使用它。
答案 1 :(得分:3)
抱歉,我没有时间编写实际代码并对其进行测试,但也许我可以给你带头。您基本上只要求在单元格的两个角上设置角半径,然后在它们朝向桌子中心移动时将它们流畅地设置为尖角。
一种方法可能是使用CAShapeLayer作为背景来定义自定义UITableViewCell。 CAShapeLayer来自Quartz路径:请参阅http://developer.apple.com/library/IOS/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html#//apple_ref/doc/uid/TP30001066-CH211。 CAShapeLayer的路径是可动画的,但不是隐式动画。您需要使用CAPropertyAnimation或执行自己的插值。根据我的经验,例如在http://itunes.apple.com/us/app/blaster-through-asteroid-field/id414827482?mt=8中,做自己的插值更快更可靠(但除了插值和碰撞检测之外,游戏的大部分内容都依赖于quartzcore,所以我不认为你#&# 39;会有性能问题。)
摘要:自定义单元格具有CAShapeLayer支持。 CAShapeLayer有2个圆角的路径。当单元格的位置移向屏幕上的某个点时,可以为path属性设置动画。完成,平滑动画的圆角到方角。如果您尝试一下,请告诉我:-)
答案 2 :(得分:1)
由于当前没有真正的(代码完整)答案,这里列出了最佳解决方法。
更改您的界面,以便不会发生这种不稳定的动画。 这可能意味着使用普通样式tableView而不是分组 样式,或使用天气应用程序中看到的备用样式(请参阅 克里斯瓦格纳的回答。谢谢克里斯!)。它甚至可能意味着使用 完全不同的界面,并没有包含这个 动画 - 这是我去的解决方案,我设法解决了 用户体验改变甚至可能比原来更好。
处理它。苹果似乎在一些较少使用的部分 操作系统或其应用程序。
提交有关bugreport.apple.com的错误报告。如果是苹果公司会很好 修好了......我知道这是一个非常小的细节,但这就是我的原因 就像Apple产品一样 - 他们可以获得正确的细节!
创建自定义UITableViewCell子类。我有点想过 这个,虽然这是一个编程挑战,但我认为它是 可行的。以下是:编辑:请参阅Rab的答案以获取更多细节。还没有把它编码出去,但是当我有时间的时候可以试一试。
自定义单元格具有一个属性,用于定义单元格是顶部,中间还是底部单元格。这可以通过UITableViewController(或子类等)设置。
自定义单元格的backgroundView属性可以使用石英为圆角等自定义绘制。
每当更改定义单元格位置的属性时,都可以对backgroundView的更改进行动画处理。困难的部分 这里是角落曲线的动画......这可行吗?苹果 似乎是在通知中心的角落里做的,当它是 拉下来并推高 - 所以似乎有可能。
如果有人真的想这样做,并将代码放在gitHub上......你会很棒!而且你会更好 Apple的UI;)
答案 3 :(得分:0)
您是否尝试过一次插入两行?顶部的那个高度为零,下一个有圆角(你可以使用石英芯)
答案 4 :(得分:0)
如果您查看“照片”应用中“发送至Youtube”部分的“标记”部分,您会看到苹果动画与我们其他人一样“生涩”。 (显然你需要一个视频上传到youtube)
我会假设你在想什么...