我正在尝试创建一个自定义视图控制器容器,它将在屏幕底部显示一个抽屉,如 Apple 邮件或音乐应用程序,我希望用户能够点击它以将其转换为全屏,或以交互方式向上滑动以显示内容。
我让抽屉工作,使用 aUIPanGestureRecognizer
来滑动它。我可以通过将内容控制器添加为子控制器、将内容视图添加到层次结构viewWillAppear:
并viewDidAppear:
在适当的时候调用来实现这一点。
但我希望允许内容视图控制器在滑动旁边进行动画处理(例如,任何动画viewWillAppear:
,如交互式弹出),因此我正在查看自定义模式演示文稿和UIPercentDrivenInteractiveTransition
,但我碰壁了,我不明白为什么这正在发生。我已经设置了一个过渡委托,返回一个自定义动画控制器和一个作为UIPercentDrivenInteractiveTransition
对象的交互控制器。
我的抽屉是容器控制器视图层次结构的一部分,自然我希望内容控制器的视图成为抽屉的子视图。但是在调用 时presentViewController:animated:completion:
,会在 中添加一个新的UITransitionView
子视图UIWindow
,据说应该在哪里发生过渡动画。但这会杀死我UIPanGestureRecognizer
,并且用户无法执行滑动以打开抽屉。
我尝试创建自定义UIPresentationController
和其他方法来控制containerView
应该在层次结构中的位置,但我无法更改行为。
我正在尝试做正确的事情吗?我错过了什么?
如果有人感兴趣,这是我的框架:LNPopupController