Diferença entre addSubview e insertSubview na classe UIView

86

Qual é a diferença entre os métodos addSubviewe insertSubViewquando uma exibição é adicionada programaticamente?

Ashwani K
fonte

Respostas:

103

A única diferença é onde a visualização é adicionada: se é a visualização frontal ( addSubview:), ou é antes da 5ª subvisualização, ( insertSubview:atIndex:) ou se está imediatamente atrás de outra subvisualização ( insertSubview:aboveSubview:).

Mahboudz
fonte
46

Usando insertSubView:você pode especificar o índice, que determina a ordem z das visualizações. Uma visão com índice mais alto está acima daquela com índices mais baixos.

Nikolai Ruhe
fonte
Obrigado, gostaria de saber se há diferenças específicas no uso dessas duas funções
Ashwani K,
1
Além da diferença específica que descrevi em minha resposta, não há nenhuma.
Nikolai Ruhe
29

Não acho que haja diferença. addSubview:é um método simples e conveniente para

[view insertSubview:aView atIndex:[view.subviews count]]
lasca
fonte
0

1.addSubview adiciona subview na matriz e depois adiciona na View'slayer

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

}

2. Enquanto insertSubview adiciona sua visão como subview e depois chama [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
user2369870
fonte