我目前正在使用提供的API来定义自定义控制器转换。我阅读了Apple提供的文档,看到了WWDC上的视频,并发现了很多关于它的博客。我对如何使用这些API有一些疑问:
animateTransition:
上的容器视图:在我找到的大多数示例代码中以及在WWDC 218中命名为"使用View控制器的自定义转换",只有" toViewController&的视图#34;已添加到containerView
。但在其他一些例子和视频中,现代iOS应用程序",显示的代码添加了" toViewController"和" fromViewController"到containerView
。什么时候我们应该同时处理这两个问题?解雇和提出是否相同?initialFrameForViewController:
上下文的finalFrameForViewController:
和UIViewControllerContextTransitioning
:WWDC 218视频告诉我们依靠这些方法检索控制器的帧是非常重要的。观点。但在很多例子中,根本没有使用。
我尝试在自定义动画中使用,但提供的框架可能位于屏幕外。如何通过这些方法确定框架?什么时候应该使用这些方法?是否在文档中指定了?viewForKey:
:自iOS 8以来我们应该使用此方法而不是viewControllerForKey:
吗?modalPresentationStyle
事件?在这里提供的幻灯片上:http://es.slideshare.net/Split82/custom-uiviewcontroller-transitions,这似乎在初始和最终框架上有一个发生率。是否记录在某处?答案 0 :(得分:0)
关于您需要添加的视图控制器,您只需要将"添加到"视图。 "来自"视野已经存在。
关于finalFrameForViewController
,可能由UIModalPresentationFullscreen
与UIModalPresentationPopover
和preferredContentSize
等内容决定。
关于viewForKey
,这对于所呈现的视图与呈现视图控制器的视图不同的情况很有用(例如,自定义转换呈现的弹出窗口也模糊了"来自"视图,这是全屏,即使呈现的视图是一个小弹出窗口)。在许多情况下,您不需要viewForKey
。这取决于你正在做什么。
是的,modalPresentationStyle
会影响帧大小(例如,popover vs全屏vs UIModalPresentationNone
)。 WWDC 2014视频#214 View Controller Advancements in iOS 8在实践中证明了这一点。