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


Ответы:


103

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


46

Используя insertSubView:вы можете указать индекс, который определяет z-порядок просмотров. Взгляд с более высоким индексом находится выше просмотров с более низким индексом.


Спасибо, я хотел
узнать,

1
Помимо конкретной разницы, которую я описал в своем ответе, ее нет.
Николай Рухе

29

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

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

0

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

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

}

2. Пока insertSubview добавляет ваше представление как subview, затем вызовите [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.