我正在尝试模拟在 Readability 应用程序中看到的滑动 UIViewController。您可以向右拖动一个页面,它将当前 View 从堆栈中弹出,并返回到带有滑动动画的父 UIViewController,如图所示:最右边的 View 位于顶部,正在向右拖动显示左边的原始表格。
我已经尝试了一些 slidingUIViewController 解决方案,例如 ECSlidingViewController,但它们试图模拟 Facebook/Path 将 slidingUIViewController 部分滑动到另一个之上的行为,这不是 Readability 所做的。
我也尝试过标准的水平滚动 UIScrollView,但滚动就像页面在两侧连接在一起,而不是将一个 View 滑过另一个 View 。
有人知道他们是怎么做到的吗?
最佳答案
这可以通过几个步骤轻松完成。我不会写下您为此需要编写的所有代码,而只是写下您需要执行的步骤。我将使用主从术语,其中主视图是您要从中呈现详细信息 View 的 View ,而详细信息 View 当然是导航堆栈顶部的 View 。
当你想呈现细节 View 时:
1) 创建一个 UIViewController 的实例来处理与 detailView 的交互。在 iOS 5+ 上,您可以将此实例存储在主视图 Controller 的 childrenViewControllers @property 中。如果您支持较低的操作系统,您应该将实例存储在 ivar 中。
2) 将 detailView 的框架设置在屏幕边界之外;为图形目的添加到 detailView 阴影。最后添加 detailView 作为 masterView 的 subview 。
3)(可选)向 detailView 添加平移手势识别器,以允许用户向后滑动 View 并关闭它。
4) 为屏幕边界中的 detailView 设置动画。确保与下方 View 的交互被禁用(注意不要同时禁用与 detailsView 的交互!)
当您想关闭详细信息 View 时:
1) 为屏幕边界外的 detailView 设置动画。
2) 从它的 super View 中删除它并删除对其 viewController 的引用。
3) 重新启用用户与主视图的交互。
关于ios - 滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11395254/