如何对 UISplitView 进行动画切换?

Posted

技术标签:

【中文标题】如何对 UISplitView 进行动画切换?【英文标题】:How can I do an animated switch to UISplitView? 【发布时间】:2011-08-05 15:38:11 【问题描述】:

我查看了在 iPad 上创建新 UISplitView 应用程序时由 xcode 生成的示例,以及来自苹果开发者网站的无数其他教程和文档。我还没有看到使用的 UISplitView 不是应用程序根的示例。这甚至可能吗?

我要完成的工作:我有一个 UITableView 开始,一旦选择了列表中的一个项目,我想显示一个拆分视图,其中包含基于所选项目的两组不同信息。

我很好奇这种类型的实现是否可能,或者只是不赞成,以及为什么。如果可能的话,我将如何实现和连接 UISplitView 以使其以这种方式运行?

编辑:我正在用我拥有的东西更新它。我现在可以切换到我的 UISplitView,尽管过渡不是动画的。正确切换到 UISplitView 以使过渡动画化的方法是什么?

立即切换代码:

[appDelegate.window addSubview:appDelegate.splitViewController.view];
appDelegate.window.rootViewController = appDelegate.splitViewController; 

编辑 2:为了让更多人看到它,我已经设法从我的 navigationController 切换到我的 splitViewController,但是当我添加按钮以便能够向后导航时,我所做的一切都没有改变我似乎被锁定了。我尝试反向镜像代码以切换到 splitViewController,但这没有任何影响,而且我完全没有想法。任何人都可以对此有所了解吗?

【问题讨论】:

UISplitViewController 是一个视图控制器,就像其他任何控制器一样。因此,您可以随时在应用程序中创建和使用一个。 这是有道理的,这就是为什么当我没有发现它被集成的例子时我真的很惊讶。我想我不太了解它的SplitViews,你能给我一个关于如何实现它的松散想法吗?对于两个可能的视图,我需要我的 RootViewController 和 DetailViewController,但这些只是普通的 VC。我在哪里/如何创建我的实际 SplitViewController? 我更改了您的问题标题 - 我希望它能更好地显示您想要的内容。如果有错误,请随时恢复。 【参考方案1】:

您应该始终使用 SplitViewController 作为 rootViewController:Split view controller must be root view controller

可能有一些 hacks,但是当 Apple 有强烈的推荐和设计指导时,我建议在与平台对抗之前尝试重新考虑你的设计 - 从长远来看,它应该可以节省你的精力。

【讨论】:

【参考方案2】:

我推荐使用MGSplitViewController,它也可以用作非rootViewController,甚至可以嵌套到另一个MGSplitViewController中,并且有一个用于动画融入主视图的单线,如果你是这样的话想要。

【讨论】:

【参考方案3】:

在你的 UITableView didSelectRowAtIndexPath 方法中,你会有类似的东西:

UISplitViewController *mySplitView = [[UISplitViewController alloc] init];
[self.navigationController pushViewController:mySplitView animated:YES];
[mySplitView release];

您可能希望像其他视图控制器一样继承 UISplitViewController 并在其中设置主视图和详细视图等。

【讨论】:

所以我把你说的和这个问题的答案结合起来:***.com/questions/2854840/…。这似乎可以编译,但是当我尝试实际选择一行时,我收到“拆分视图控制器无法推送到导航控制器”错误。有关如何解决此问题的任何建议? 好吧,我改变了我的应用程序的结构方式,我拥有了我正在寻找的功能,虽然它的行为并不理想,主要是它没有动画。有什么方法可以切换到 UISplitView 并让更改变为动画?

以上是关于如何对 UISplitView 进行动画切换?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI 切换类动画在 Safari / Chrome 中没有动画 - 但在 Firefox 中动画?

如何根据常规提交规范对 UI 更改进行分类?

ui框架组件中的过渡动画卡顿

通用应用程序的 iPad UISplitView 问题

Android Activity切换动画多种实现方式与封装

Three.js 对模型多个动画切换展示(fbx)