Diferença entre addSubview e insertSubview na classe UIView


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:).


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.


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]]

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];
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.