gpt4 book ai didi

iOS 7 添加了向右滑动以从堆栈中弹出 View Controller 。是否可以通过向左滑动将其添加回去?

转载 作者:可可西里 更新时间:2023-11-01 03:39:17 25 4
gpt4 key购买 nike

好吧,棘手的问题,我知道这是可能的,因为有一些应用程序在做,特别是 Reeder做得很好。

在 Reeder 中,弹出的 View Controller 似乎并没有从内存中删除,或者无论典型的行为是什么,因为在弹出并返回到之前的 View Controller 之后,您可以从右向左滑动以查看一点点,如果你在离开前滚动了前一个 View Controller ,你仍然可以看到滚动发生。这种无需从头开始预加载即可快速跳回您之前查看的 View Controller 的能力正是我所需要的。

基本上,在 iOS 7 中,默认情况下,当您从 View Controller 的左边缘向右滑动时,它会将其弹出导航堆栈。我希望能够从右边缘向左滑动以将其添加回去。将其想象成在网络浏览器中,您可以在按下后退按钮后单击“前进”按钮。 (或者在 iOS 7 的 Safari 中你可以如何做到这一点。)

默认情况下,这个功能是 iOS 7 的一部分吗?我只是找不到它?或者是否有关于如何实现它的任何信息?

最佳答案

选项取决于您尝试支持的 iOS 版本。

  1. 在 iOS 7+ 中,您可以使用自定义 View Controller 转换并实现交互式 View Controller 转换。有关概念性描述,请参阅 WWDC 2013 视频 Custom Transitions Using View Controllers .基本流程是:

    • 创建一个定义动画内容的动画 Controller 。动画 Controller 是一个符合UIViewControllerAnimatedTransitioning 的对象。 (请注意,必须为像推送动画这样标准的东西定义自定义动画 Controller 似乎很奇怪,但在下面你会看到我们希望手势识别器与交互 Controller 交互,但你不能定义自定义交互 Controller 如果您还没有定义自定义动画 Controller 。)

    • 实例化一个交互 Controller 。您可以创建自己的符合 UIViewControllerInteractiveTransitioning 的交互 Controller 类,但最简单的方法是简单地实例化一个UIPercentDrivenInteractiveTransition 对象。

    • 现在您有了交互 Controller ,您可以将手势识别器(例如 UIScreenEdgePanGestureRecognizer)链接到它。手势识别器将调用交互 Controller 的 updateInteractiveTransition 来指定动画的进度,因为它对应于连续手势。

    • 显然,如果您要将从右边缘的滑动识别为对特定场景的“插入”,那么您将跟踪“下一个”场景将是什么。有时您会有一系列预定义的 View Controller 。有时你会保留一堆你之前弹出的 View Controller ,这样你就可以从右边滑动将它们推回去。这仅取决于所需的用户体验。

    iOS 7 用户转换在自定义与交互式转换相关的动画和手势方面提供了令人难以置信的控制。但要做到这一点需要一些工作。

  2. 如果您只是在寻找一种更简单的方法来在一系列 View Controller 之间进行滑动转换,您可以使用 UIPageViewController .在 iOS 6 及更高版本中,您可以使用 UIPageViewControllerTransitionStyleScrolltransitionStyle。 (不幸的是,在 iOS 5 中,您只有页面 curl 过渡。)

  3. 在 iOS 5+ 及更高版本中,您还可以使用自定义容器 Controller 自行执行此操作,手动添加 subview Controller View ,在手势期间更改帧。显然,您还必须执行所有自定义容器调用(例如 addChildViewControllerremoveChildViewControllerwillMoveToParentViewControllerdidMoveToParentViewController 等)。观看 WWDC 2011 视频 Implementing UIViewController ContainmentCreating Custom Container View Controllers View Controller 编程指南部分。

关于iOS 7 添加了向右滑动以从堆栈中弹出 View Controller 。是否可以通过向左滑动将其添加回去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com