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


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

4 79

4 ответа:

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

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

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

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

1.addSubview добавить подвид в массив, а затем добавить в 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];
}