Разница между addSubview и insertSubview в классе UIView

в чем разница между addSubview и insertSubView методы при программном добавлении представления?

4 ответов


единственная разница заключается в том, где добавляется представление: является ли это самый передний вид (addSubview:), или это перед 5-м подвидом, (insertSubview:atIndex:) или если он находится сразу за другим подвидом (insertSubview:aboveSubview:).


С помощью insertSubView: вы можете указать индекс, который определяет Z-порядок представлений. Представление с более высоким индексом находится выше представления с более низкими индексами.


Я не думаю, что есть разница. addSubview: простой удобный метод для

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

1.addSubview добавить subview в массиве затем добавить в View'Slayer

- (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];
}