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

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


person Ashwani K    schedule 05.10.2009    source источник


Ответы (4)


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

person mahboudz    schedule 05.10.2009

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

person Nikolai Ruhe    schedule 05.10.2009
comment
Спасибо, я хотел узнать, есть ли особая разница в использовании этих двух функций? - person Ashwani K; 05.10.2009
comment
Помимо конкретной разницы, которую я описал в своем ответе, ее нет. - person Nikolai Ruhe; 05.10.2009

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

[view insertSubview:aView atIndex:[view.subviews count]]
person sliver    schedule 05.10.2009

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];
}
person user2369870    schedule 23.01.2016