Leo*_*ica 10 uikit ios presentviewcontroller uimodalpresentationcustom
我正在尝试创建一个自定义视图控制器容器,它将在屏幕底部显示一个抽屉,如Apple邮件或音乐应用程序,我希望用户能够点击它以将其转换为全屏,或以交互方式向上滑动以显示内容.

我有抽屉工作,使用UIPanGestureRecognizer滑动它.我可以通过将内容控制器添加为子控制器,将内容视图添加到层次结构viewWillAppear:并viewDidAppear:在适当时调用来实现.
但我希望允许内容视图控制器在滑动旁边动画(例如,任何动画viewWillAppear:,如交互式弹出窗口),因此我正在看自定义模态演示文稿UIPercentDrivenInteractiveTransition,但我正在撞墙,我看不清楚为什么这种情况正在发生.我已经设置了转换委托,返回自定义动画控制器和作为UIPercentDrivenInteractiveTransition对象的交互控制器.
我的抽屉是容器控制器视图层次结构的一部分,当然我希望内容控制器的视图是抽屉的子视图.但是在调用时presentViewController:animated:completion:,UITransitionView会将新的子视图添加到UIWindow应该发生过渡动画的位置.但这会导致我死亡UIPanGestureRecognizer并且用户无法执行滑动以打开抽屉.
我尝试创建自定义UIPresentationController和其他方法来控制层次结构containerView中的位置,但我无法更改行为.
我试图以正确的方式做什么?我错过了什么?
如果有人有兴趣,这是我的框架:LNPopupController
更新2015.11.19
一个演示项目
Obj-C - > https://github.com/saiday/DraggableViewControllerDemo
Swift 2.x - > https://github.com/ostatnicky/DraggableViewController
Swift 4.x - > https://github.com/satishVekariya/DraggableViewController
谢谢@avdyushin提到了我的博文.
是的,我的帖子Draggable视图控制器?互动视图控制器!是一个关于你的主题的教程.
引自我的博文:
没有两个UIViewController在一起,而是UIViewController一次只有一个.当用户开始拖动某些子视图时,通过自定义UIPercentDrivenInteractiveTransition协议呈现具有自定义UIViewControllerAnimatedTransitioning的另一个视图控制器.
这两个协议是定制交互式UIViewController转换的基础.如果您还不知道,请在开始之前先看一眼.
1. UIViewControllerAnimatedTransitioning协议
2. UIPercentDrivenInteractiveTransition协议
iOS 10 的更新答案:现在使用UIViewPropertyAnimator.
UIViewPropertyAnimator是基于块的动画概念的延续,采用其逻辑延续 - 围绕动画的面向对象的包装器。这允许更多的控制,例如使用fractionComplete- 正是这里需要的控制动画的完成。
| 归档时间: |
|
| 查看次数: |
3112 次 |
| 最近记录: |