【问题标题】:Sliding a UIViewController to pop - as in the Readability app滑动 UIViewController 以弹出 - 就像在 Readability 应用程序中一样
【发布时间】:2012-07-09 12:43:21
【问题描述】:

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

我已经尝试了一些slidingUIViewController 解决方案,例如ECSlidingViewController,但他们尝试模拟Facebook/Path 的行为,即在另一个slidingUIViewController 上部分滑动,这不是Readability 所做的。

我也尝试过标准的水平滚动 UIScrollView,但滚动就像页面在侧面连接,而不是在另一个视图上滑动一个视图。

有人知道他们是怎么做到的吗?

【问题讨论】:

  • 这不是 UIPageViewController 的设计目的吗?它会开箱即用。

标签: ios uiviewcontroller


【解决方案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) 重新启用用户与主视图的交互。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2011-05-15
    • 2022-01-19
    • 2013-05-14
    • 1970-01-01
    相关资源
    最近更新 更多