滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样
Posted
技术标签:
【中文标题】滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样【英文标题】:Sliding a UIViewController to pop - as in the Readability app 【发布时间】:2012-07-09 12:43:21 【问题描述】:我正在尝试模拟在 Readability 应用中看到的滑动 UIViewController。您可以将页面向右拖动,它将当前视图从堆栈中弹出以返回父 UIViewController,并带有如图所示的滑动动画:最右侧的视图位于顶部,并且被向右拖动,显示左边的原始表格。
我已经尝试了一些slidingUIViewController 解决方案,例如ECSlidingViewController,但他们尝试模拟Facebook/Path 的行为,即在另一个slidingUIViewController 上部分滑动,这不是Readability 所做的。
我也尝试过标准的水平滚动 UIScrollView,但滚动就像页面在侧面连接,而不是在另一个视图上滑动一个视图。
有人知道他们是怎么做到的吗?
【问题讨论】:
这不是 UIPageViewController 的设计目的吗?它会开箱即用。 【参考方案1】:这可以通过几个步骤轻松完成。我不会写下你需要编写的所有代码,而只是写下你需要采取的步骤。我将使用主-详细信息术语,其中主视图是您要从中显示详细信息视图的视图,而详细信息视图当然是导航堆栈顶部的视图。
当你想展示详细视图时:
1) 创建一个 UIViewController 的实例来处理与 detailView 的交互。在 ios 5+ 上,您可以将此实例存储在 master 的 viewController 上的 childrenViewControllers @property 中。如果您支持较低的操作系统,则应将实例存储在 ivar 中。
2) 将 detailView 的框架设置在屏幕边界之外;添加到 detailView 用于图形目的的阴影。最后添加detailView作为masterView的子视图。
3)(可选)向 detailView 添加平移手势识别器,以允许用户向后滑动视图并关闭它。
4) 在屏幕边界内为 detailView 设置动画。确保禁用与下面视图的交互(注意不要同时禁用与 detailsView 的交互!)
当您想要关闭详细视图时:
1) 在屏幕边界之外为 detailView 设置动画。
2) 从它的 superview 中删除它并删除对它的 viewController 的引用。
3) 重新启用用户与主视图的交互。
【讨论】:
以上是关于滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样的主要内容,如果未能解决你的问题,请参考以下文章
检查弹出的 UIViewController 是不是被滑动关闭
Delphi XE4或XE5:如何以弹出格式打开Goog le Chrome?