Diferencia entre addSubview e insertSubview en la clase UIView


Respuestas:


103

La única diferencia está en dónde se agrega la vista: si es la vista más al frente ( addSubview:), o está antes de la quinta subvista, ( insertSubview:atIndex:) o si está inmediatamente detrás de otra subvista ( insertSubview:aboveSubview:).


46

Utilizando insertSubView:puede especificar el índice, que determina el orden z de las vistas. Una vista con un índice más alto se encuentra por encima de aquellas con índices más bajos.


Gracias, quería saber si hay una diferencia específica en el uso de estas dos funciones
Ashwani K

1
Aparte de la diferencia específica que describí en mi respuesta, no hay ninguna.
Nikolai Ruhe

29

No creo que haya diferencia. addSubview:es un método simple y conveniente para

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

0

1.addSubview agregar subvista en la matriz y luego agregar en View'slayer

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

}

2.Mientras insertSubview agregue su vista como subvista y luego llame [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.