Quelle est la différence entre les méthodes addSubview
et insertSubView
lorsqu'une vue est ajoutée par programme?
La seule différence réside dans l'endroit où la vue est ajoutée: si c'est la vue la plus en avant (addSubview:
), ou avant la 5e sous-vue, (insertSubview:atIndex:
) ou s'il se trouve immédiatement derrière une autre sous-vue (insertSubview:aboveSubview:
).
En utilisant insertSubView:
vous pouvez spécifier l'index, qui détermine l'ordre z des vues. Une vue avec un indice plus élevé se situe au-dessus de celles avec des indices plus bas.
Je ne pense pas qu'il y ait de différence. addSubview:
est simple une méthode pratique pour
[view insertSubview:aView atIndex:[view.subviews count]]
1.addSubview ajouter une sous-vue dans le tableau puis ajouter dans View'slayer
- (void)addSubview:(UIView *)subview
{
[_subviews addObject:subview];
[_layer addSublayer:subview.layer];
}
}
2.Lorsque insertSubview ajoutez votre vue en tant que sous-vue, puis appelez [_layer insertSublayer:subview.layer atIndex:index];
- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
[self addSubview:subview];
[_layer insertSublayer:subview.layer atIndex:index];
}