Разница между addSubview и insertSubview в классе UIView - PullRequest
82 голосов
/ 05 октября 2009

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

Ответы [ 4 ]

101 голосов
/ 05 октября 2009

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

45 голосов
/ 05 октября 2009

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

29 голосов
/ 05 октября 2009

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

[view insertSubview:aView atIndex:[view.subviews count]]
0 голосов
/ 23 января 2016

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