addChild()和addChildAt(,index)的区别

新的子显示对象通过addChild()加入到显示列表中,绘制时,视觉上会位于在容器内所有的其它子显示对象之上,因为addChild()会把该子对象加入到子元件的列表前端,使其拥有下一个最高位置的索引值,如果你要新增子对象,同时指定它的层叠次序,可以使用 addChildAt();方法。
addChildAt()方法有两个参数:要新增的对象,以及这个对象要在层叠次序中使用什么位置,如果先前有元件在指定位置上,那么原该位置处的对象和以上的所有对象都会向上移动一个单位。指定无效位置时,会抛出一个错误。
下面的示例建立三个不同颜色的圆,红圆和蓝圆是以addChild()方法加入的,使得蓝圆出现在上面,因为是在红圆之后加入的。然后,绿圆会以addChildAt()方法安插到这两个圆之间(指定索引1后,原位于1的红圆会移动到2)
//新建三个不同颜色的圆圈,然后改变其座标,使其错开,不再都位于(0,0);
var red:Shape=createCircle(0xFF0000,100,100,200);
var green:Shape= createCircle(0x00FF00,100,150,200);
var blue:Shape= createCircle(0x0000FF,100,200,200);
addChild(red);
addChild(blue);
addChildAt(green,1);
function createCircle(co:uint,r:Number,rx:Number,ry:Number):Shape{
var shape:Shape=new Shape();
shape.graphics.beginFill(co);
shape.graphics.drawCircle(0,0,r)
shape.graphics.endFill();
shape.x=rx;
shape.y=ry;
return shape;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于 `self.addChild`,它是 UIViewController 中的一个方法,用于向当前视图控制器中添加子视图控制器。 在 iOS 中,视图控制器的嵌套是非常常见的,我们可以通过 addChild 方法将一个或多个子视图控制器添加到当前视图控制器中,从而实现视图控制器的嵌套。 具体来说,当我们将一个视图控制器添加为另一个视图控制器的子视图控制器时,子视图控制器将被添加到父视图控制器的子视图控制器列表中,同时父视图控制器会成为子视图控制器的容器视图控制器,负责管理子视图控制器的生命周期、协调子视图控制器之间的交互等。 在使用 addChild 方法时,我们需要先调用 `addChild(_:)` 方法将子视图控制器添加到父视图控制器中,然后再将子视图控制器的 view 添加到父视图控制器的视图层级中,最后调用 `didMove(toParent:)` 方法通知子视图控制器已经被添加到了父视图控制器中。 示例代码如下: ```swift let childViewController = ChildViewController() self.addChild(childViewController) self.view.addSubview(childViewController.view) childViewController.didMove(toParent: self) ``` 上面的代码先创建了一个子视图控制器 childViewController,然后将其添加到当前视图控制器中,最后将 childViewController 的 view 添加到当前视图控制器的视图层级中,并调用 didMove(toParent:) 方法通知 childViewController 已经被添加到了当前视图控制器中。 希望这个解释能够帮到您。如果您还有其他问题,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值