1

我一直在尝试使用 UITableView 的 deselectRowAtIndexPath: 来帮助用户知道在返回 tableview 时正在查看哪一行。

我注意到我可以将它放在 viewWillAppear 和 viewDidAppear 中,结果略有不同。第一个在弹出视图滑出时开始动画,而后者仅在弹出视图完全消失后才开始动画。结果,我猜后者感觉更“明显”(更多的动画发生在屏幕上的行完全 - 实际上全部)。

从美学上讲,这是一个有用的区别,因为我可以更好地控制用户体验。但是,有些问题:

  • 有什么技术原因我应该使用其中一个吗?
  • 仔细查看一些 Apple 应用程序,我认为它们在 viewWillAppear 中制作动画。任何人都可以确认吗?
  • 使用 viewWillAppear 是否存在动画将在屏幕外完成的风险(可能是由于弹出视图控制器中的一些滞后处理等)?还是仅在弹出视图的过渡开始时触发?
4

1 回答 1

0

1)如果您的代码依赖于完全加载的视图,则 viewDidAppear 更好,但在这种情况下,我认为这不会产生技术差异。

2) 我不认为我们中的任何人都在 Apple 工作......

3) viewWillAppear 根据定义在视图开始显示之前调用。如果您的动画花费的时间比视图出现的时间长,那么是的,它将在屏幕外。否则它将是(动画长度 - (减)视图出现的时间)

于 2012-04-12T01:09:59.217 回答