UIView 类中 addSubview 与 insert tSubview 的区别

以编程方式添加视图时,addSubviewinsertSubView方法之间的区别是什么?

63461 次浏览

Using insertSubView: you can specify the index, which determines z-order of views. A view with a higher index lies above those with lower indices.

I don't think there is a difference. addSubview: is simple a convenient method for

[view insertSubview:aView atIndex:[view.subviews count]]

The only difference is in where the view is added: whether it is the frontmost view (addSubview:), or it is before the 5th subview, (insertSubview:atIndex:) or if it is immediately behind another subview (insertSubview:aboveSubview:).

1.addSubview add subview in array then add in View'slayer

- (void)addSubview:(UIView *)subview
{
[_subviews addObject:subview];
[_layer addSublayer:subview.layer];
}

}

2.While insertSubview add your view as subview then call [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
[self addSubview:subview];
[_layer insertSublayer:subview.layer atIndex:index];
}