UIView类中的addSubview和insertSubview之间的区别


Answers:


103

唯一的区别在于添加视图的位置:是最前面的视图(addSubview:),还是在第5个子视图(insertSubview:atIndex:)之前,还是紧接在另一个子视图(insertSubview:aboveSubview:)之后。


46

使用insertSubView:可以指定索引,该索引确定视图的z顺序。具有较高索引的视图位于具有较低索引的视图之上。


谢谢,我想在这两个功能的使用上有特定的区别
Ashwani K,

1
除了我在答案中描述的特定差异外,没有任何区别。
Nikolai Ruhe

29

我认为没有区别。addSubview:简单方便的方法

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

0

1. addSubview在数组中添加子视图,然后在View的layer中添加

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

}

2.在insertSubview中添加您的视图作为子视图然后调用 [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.