ios - 滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样

标签 ios uiviewcontroller

我正在尝试模拟在 Readability 应用程序中看到的滑动 UIViewController。您可以向右拖动一个页面,它将当前 View 从堆栈中弹出,并返回到带有滑动动画的父 UIViewController,如图所示:最右边的 View 位于顶部,正在向右拖动显示左边的原始表格。

view being slided to the right

我已经尝试了一些 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/

相关文章:

ios - 启动 App 时 Mvvmcross 颜色插件抛出错误

iOS - 使用 Storyboard和自动布局使 UIScrollView 居中

ios - 主页上的自定义呼入进度状态栏

iphone - 从 UIViewController 返回 NSString

ios - ViewController 的高度设置不正确

ios - 在 TableView Controller 中搜索时,与 UILabel 相比,动态创建的 UIButton 的屏幕闪烁

ios - 关闭堆栈中较低的 ViewController 并不像预期的那样表现

ios - viewDidAppear 调用了在 iOS8 中被关闭的 View Controller

ios - 'NSInvalidArgumentException',添加导航栏后发送到实例的无法识别的选择器

ios - 您需要 iOS 上的数据保护功能吗?