如何在iPhone应用程序中为此自定义视图转换设置动画?

时间:2012-10-13 16:59:46

标签: iphone ios uikit core-animation

这是一个棘手的问题需要解释,但基本上我有一个带有主屏幕的应用程序,上面有一堆圆形图标。当用户点击图标时,它会将表格视图推送到导航堆栈。当在主屏幕上点击图标时,我希望点击的图标在滚动时保持在表格视图的顶部,然后放到表示它的单元格中的表格视图上。但是,所有其他图标应保持在传入表视图下方,就像正常情况一样。这是我掀起的快速图表......

enter image description here

我即将开始研究这个问题,我只是想快速发布这个问题,万一有人对我如何处理这个问题有一些想法。非常感谢你的智慧!

2 个答案:

答案 0 :(得分:2)

哦,太容易了!!!

我会尝试解释我的解决方案:

您需要两组图标。

一组放置在Home View上,第二组是精确位置,但是作为主窗口上的子视图(默认情况下 - 隐藏)

一旦您选择了一个按钮,并想要推送一个列表 - 您可以取消隐藏相应的窗口子视图图标,并且有延迟 - 将其动画/缩小到tableView对应的位置。

动画完成后 - 隐藏图标(即时隐藏不会引人注意,因为此图标将被定位/缩放以精确地重新组合桌面视图中的图标),并将其移动到默认位置/比例(仍然隐藏)。

就是这样。

答案 1 :(得分:1)

这非常简单,无需添加按钮的第二个实例即可完成。您将使用视图层次结构z-index来实现此目的。

当您将表格视图添加为主视图的子视图时,请不要使用addSubview,请使用:

[self.view insertSubview:table belowSubview:button];

按钮^将代表您想要保持在最顶层的按钮,而对于其他按钮,您只需要确保它们在堆叠中较低。这样,当桌子飞进来时,它可以继续经过按钮,但按钮将保持在它上面。

您也可以使用:

[self.view insertSubview:table atIndex:5];

在所有这些按钮和表格上,可以完全控制每个对象z-index。