【问题标题】:View hierarchy during a custom view transition自定义视图转换期间的视图层次结构
【发布时间】:2015-03-11 22:15:20
【问题描述】:

我目前正在使用提供的 API 来定义自定义控制器转换。我阅读了 Apple 提供的文档,查看了 WWDC 上的视频,发现很多博客都在谈论它。我对如何使用这些 API 有一些疑问:

  1. animateTransition: 上的容器视图:在我发现的大多数示例代码中以及名为“使用视图控制器的自定义转换”的 WWDC 218 中,只有“toViewController”的视图被添加到containerView。但在其他一些示例和视频“Architecting Modern iOS Apps”中,显示的代码将“toViewController”和“fromViewController”都添加到containerView。我们什么时候应该同时处理两者,什么时候只处理一个?解雇和展示是否相同?
  2. UIViewControllerContextTransitioning 上下文中的 initialFrameForViewController:finalFrameForViewController::WWDC 218 视频告诉我们,依靠这些方法来检索控制器视图的帧非常重要。但在很多例子中,根本没有使用。 我尝试在自定义动画中使用 then,但提供的框架可能位于屏幕外部。这些方法如何确定帧?什么时候应该使用这些方法?是否在文档中指定?
  3. iOS8 中的viewForKey::自 iOS 8 以来,我们应该使用此方法而不是 viewControllerForKey: 吗?
  4. 在自定义动画转换期间视图层次结构中是否有 modalPresentationStyle 事件?在此处提供的幻灯片上:http://es.slideshare.net/Split82/custom-uiviewcontroller-transitions,这似乎与初始帧和最终帧有关。它是否记录在某处?

【问题讨论】:

    标签: ios iphone uiviewcontroller custom-transition


    【解决方案1】:
    1. 关于您需要添加哪些视图控制器,您只需添加“to”视图。 “从”视图已经存在。

    2. 关于您的finalFrameForViewController,它可能由UIModalPresentationFullscreen vs UIModalPresentationPopoverpreferredContentSize 之类的东西决定。

    3. 1234563是全屏的,即使呈现的视图是一个小弹出窗口)。在许多情况下,您不需要viewForKey。这取决于你在做什么。
    4. 是的,modalPresentationStyle 会影响帧大小(例如,popover 与全屏 vs UIModalPresentationNone)。 WWDC 2014 视频 #214 View Controller Advancements in iOS 8 在实践中演示了这一点。

    【讨论】:

    • 关于第一点,为什么在交互式过渡期间我们要同时添加两个视图? (参见架构应用电影)
    • 我不会担心他们将“来自”添加到层次结构的示例。我见过他们添加“从”视图的时间,他们完全是错误的,没有必要这样做。我唯一一次想在层次结构中添加一些“从”视图是展开segues(因为自定义转换不能很好地处理;但是在自定义转换框架中这样做很丑)。
    • 我将尝试通过从代码中删除它来查看发生了什么。缺乏文档;(我无法弄清楚如何进行交互式转换的一般方法。我希望这将很快得到解决
    猜你喜欢
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2011-11-23
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多