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

Mahboudz
fuente
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.

Nikolai Ruhe
fuente
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]]
astilla
fuente
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];
}
usuario2369870
fuente