如何让 UIKit 为我提供自定义转换的转换协调器?

Posted

技术标签:

【中文标题】如何让 UIKit 为我提供自定义转换的转换协调器?【英文标题】:How can I get UIKit to provide me with a transition coordinator for a custom transition? 【发布时间】:2015-11-27 19:17:49 【问题描述】:

我正在编写一个管理多个子视图控制器的自定义容器视图控制器,有点像UIPageViewController 所做的。

我希望客户能够在其子视图控制器之间的交互式转换旁边为其职责范围之外的内容设置动画,但我似乎无法找到让 UIKit 为我提供转换协调器的方法。

对于这样一个简单的任务,我真的需要创建一个自定义类来实现这个协议吗?如果是这样,我将如何实施-animateAlongsideTransition:completion:

【问题讨论】:

【参考方案1】:

如果您谈论的是从子视图控制器(即 UIViewController 的 transitionCoordinator 属性)获得的那种转换协调器,您将无法从系统中获得一个。此类过渡协调员仅在非常有限的情况下提供。

例如,您可以为 UITabBarController 编写自定义的过渡动画,可能是交互式的,但在任何情况下,您都无法从任何正在进行过渡的子视图控制器中获取过渡协调器;我认为这是一个严重的错误。

因此,由于在允许您为 内置 父视图控制器编写自定义过渡动画的情况下,您甚至无法获得过渡协调器,显然您获得的机会在您尝试自己的父视图控制器的情况下是零。

【讨论】:

那么我有哪些选择?自己写?滥用隐藏的 UINavigationController 子视图控制器来获取过渡协调器? 你没有在你的问题中提供足够的信息来揭示你在做什么或你的目标是什么,更不用说让我能够提出选项了。我试图回答我在您的问题中可以找到的唯一实际编程问题。您正在构建自己的架构,因此您构建的架构取决于您。

以上是关于如何让 UIKit 为我提供自定义转换的转换协调器?的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 上使用自定义背景图像创建 UIKit 弹出框

导航时如何在 SwiftUI 中使用自定义视图转换?

如何将自定义 json 转换为自适应卡片 json 格式

如何防止 gorm 将自定义整数类型转换为字符串?

自定义类型转换器之TypeConverter

如何在hive中将品种自定义时间戳转换为秒