我想实现一个保持预览按钮,该按钮会显示一个包含AVPlayerLayer
的视图,只要触摸没有结束,该视图就会播放。视频播放器包含在不同的视图控制器中,我希望能够在呈现它时使用presentViewController:animated:
,而不仅仅是将其添加为子视图和子视图控制器。
我的问题是关于如何处理触摸事件。我看到两种可能的方式:
UIViewControllerTransitioningDelegate
来呈现它,然后只是跳过调用completeTransition:
或者类似的东西(我相信触摸不会在新视图上注册,直到你完成动画,但如果我错了,请纠正我。)答案 0 :(得分:1)
我的问题是关于如何处理触摸事件。
触摸总是与他们开始的视图相关联。您无法将触摸转移到其他视图。我从来没有尝试过,但我认为你应该首先探讨的选择是:
使用视图控制器包含。使预览视图控制器成为触摸源自的控制器的子视图控制器。这样,父级及其视图层次结构永远不会消失,尽管它们可以被掩盖。
将手势识别器附加到窗口。窗口是一个视图,应该能够有手势识别器。您可以让手势识别器定位到应用程序委托或其他一直存在的对象,并让代理在触发识别器时发布通知。再说一次,我还没试过这个,但看起来它应该可行。