Ios 与addsubview一起使用时,在多个图层上添加UiView

Ios 与addsubview一起使用时,在多个图层上添加UiView,ios,objective-c,iphone,uiview,Ios,Objective C,Iphone,Uiview,我试图在主视图上添加UIView,UIView是具有重力动画的圆(球) 问题是大多数时候视图都添加到不同的层上,就像这样 有没有一种方法可以在主视图或主视图的一个图层上添加所有这些UIView(圆),因为我需要在这些圆上添加碰撞行为 编辑: 这是我的UIView代码 lblTimer=[[UILabel alloc]initWithFrame:frameLabel]; lblTimer.textColor=[UIColor redColor]; lblTimer.text=@“0”; //

我试图在主视图上添加UIView,UIView是具有重力动画的圆(球)

问题是大多数时候视图都添加到不同的层上,就像这样

有没有一种方法可以在主视图或主视图的一个图层上添加所有这些UIView(圆),因为我需要在这些圆上添加碰撞行为

编辑:

这是我的UIView代码

lblTimer=[[UILabel alloc]initWithFrame:frameLabel];
lblTimer.textColor=[UIColor redColor];
lblTimer.text=@“0”;
//frameBall=CGRectMake(接触点x-12.5,接触点y-12.5,25,25);
frameBall=CGRectMake(xCoordinate-12.5,yccoordinate-12.5,25,25);
viewBall=[[UIView alloc]initWithFrame:frameBall];
viewBall.layer.cornerRadius=12.5;
viewBall.backgroundColor=[UIColor yellowColor];
//CGRect frameLabel=CGRectMake(touchPoint.x,touchPoint.y,25,25);
[视图球添加子视图:lblTimer];

[self.view addSubview:viewBall]每次添加视图时,它都会添加到视图层次结构的顶部。这是因为,当两个视图发生碰撞时,其中一个视图必须位于顶部。您捕获的视图层次结构有点偏颇,因为如果您以不重叠的方式添加球,我非常确定它们看起来像是在同一层上

要添加碰撞,可以尝试检查正在移动的视图是否位于另一个视图子视图中:

for (UIView *anotherView in self.subviews) {
    if (movingView == anotherView)
        continue;
    if (CGRectIntersectsRect(movingView.frame, anotherView.frame)) {
        // Do something
    }
}
1.一个视图=一层 但是您想要的是所有视图层都具有相同的父层,这在上面的代码中已经有了-它看起来可能不同,因为模拟器试图以非重叠的方式显示项目



如果你真的想让X视图共享一个图层,而不仅仅是一个超级图层,那你就走运了,只需改变你的方法:)

请共享你的code@GauravSrivastava-我已经添加了代码