如何在IOS7中实现前向和后向转换的UIViewControllers之间的导航?

时间:2013-09-24 20:29:20

标签: ios objective-c xamarin.ios ios7 uipageviewcontroller

假设我有一份我想要浏览的文章列表。 iOS 6有两个简单的解决方案:

  1. 使用UIPageViewController
  2. 使用带有UIScrollView的自定义解决方案,可能是嵌套的
  3. 这很简单,但缺乏自定义转换的灵活性。使用UIPageViewController我只有两个(Page Curl和Scroll),UIScrollView只有Scroll。

    我正在寻找的转换效果是Apple在iOS 7中引入的转换效果。我们通过将新控制器推入堆栈获得的转换效果,请参见屏幕截图:

    enter image description here

    在我看来,这带来了一个非常好的用户体验,但它只能回归,而不是前进。但是由于Safari浏览器也支持双向导航,我想知道它是如何在那里实现的,并且最终我如何能够在我的文章列表中实现它。

    感谢任何提示!

2 个答案:

答案 0 :(得分:3)

我最近查看了完全相同的问题并构建了一个使用UIViewController包含和UIPanGestureRecognizer子类的working demo。它支持:

  • 双向基于手势的分页(跟踪触摸而不是简单地在滑动时触发动画)
  • 能够启用/禁用换行(从第0页移到lastIndex并返回)
  • 能够启用/禁用视差分页(禁用时,您只需获得标准UIScrollView(如分页)

https://github.com/alfiehanssen/ios-viewcontroller-containment

另一种方法是根据新的UIViewControllerInteractiveTransitioning和相关协议构建寻呼机。

希望这会有所帮助......

答案 1 :(得分:1)

在您自己的容器视图控制器中拥有一堆视图或视图控制器,并使用平移手势识别器来跟踪手指滑动,并将其转换为更改顶视图的框架/中心。

github中有很多iOS幻灯片菜单项目,可能会向您展示如何进行平移手势识别器。