什么是在窗口中处理多个子视图和viewcontrollers的触摸的最佳方式

时间:2015-11-15 14:56:25

标签: ios objective-c iphone uiview uiviewcontroller

我有一个特定的情况,我不确定处理它的最佳方法。

我会注意到我尝试过的两种方式都有效但我正在寻找最佳或正确的方式。

方案

我正在构建一个将在应用程序上方呈现的UIWindow。 UIWindow将包含多个视图层,每个层可以包含能够由用户拖动的浮动子视图,并且每个层也由它自己的视图控制器控制。如果用户没有触摸任何子视图,它将通过视图和UIWindow将触摸传递给应用程序以正常处理它。

选项1 - 让每个UIView / Subview处理命中测试。基本上,视图本身就是实现pointInsidehitTest的视图,这使我相信视图本身应该进行此检查。在UIWindow中,我将不得不遍历每个子视图及其子视图以查找命中的子视图。我也可以明白hitTest,但我必须明确检查我的子视图控制器" main"观点(self.view)不应该被拖拽。

选项2 - 让每个UIViewController处理pointInside事物,这是一个自定义方法。基本上这将使我必须在每个UIViewController中实现一个自定义方法,它循环通过它的视图子视图然后返回BOOL天气或不是它被击中。我必须从UIWindow>手动调用此方法。 VC-main.sub-2.check()+ VC-main.sub-1.check()

选项3 - ????

正如我所说的,我已经让这两种方法都起作用了,但是他们都没有感觉非常优雅,所以我想知道是否有人有一些好主意。

这是一般布局的图像。

enter image description here

0 个答案:

没有答案