我有几个UIViews
相同的superview
。顶部的一个视图我希望能够在屏幕上拖动,而UIViews
它下面的多个视图在经过它们时会做出反应(底部的视图不重叠)。现在,我有可拖动视图UIViewController
使用委托协议向我发送触摸事件,这是我想做所有逻辑的地方。
本质上,我希望能够找出我的可拖动视图当前在视图控制器中的视图。有什么简单的方法可以做到这一点?
我有几个UIViews
相同的superview
。顶部的一个视图我希望能够在屏幕上拖动,而UIViews
它下面的多个视图在经过它们时会做出反应(底部的视图不重叠)。现在,我有可拖动视图UIViewController
使用委托协议向我发送触摸事件,这是我想做所有逻辑的地方。
本质上,我希望能够找出我的可拖动视图当前在视图控制器中的视图。有什么简单的方法可以做到这一点?
您可以通过遍历 self.view 的子视图数组(或您的主视图)来获取所有视图的框架。然后,您可以进行测试以查看特定点是否在其中一个视图中,或者是否存在拖动视图的当前帧与任何其他帧的交集。
有一个方便的方法可以让你做到这一点:CGRectIntersectsRect(r1, r2)。
您将需要获取视图的框架并查看它们是否相交。这里的示例代码有一个类似的问题Detecting if UIView is intersecting other UIViews