Différence entre addSubview et insertSubview dans la classe UIView


Réponses:


103

La seule différence réside dans l'endroit où la vue est ajoutée: s'il s'agit de la vue la plus en avant ( addSubview:), ou avant la 5e sous-vue, ( insertSubview:atIndex:) ou si elle est immédiatement derrière une autre sous-vue ( insertSubview:aboveSubview:).


46

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 inférieurs.


Merci, je voulais y a-t-il une différence spécifique dans l'utilisation de ces deux fonctions
Ashwani K

1
Mis à part la différence spécifique que j'ai décrite dans ma réponse, il n'y en a pas.
Nikolai Ruhe

29

Je ne pense pas qu'il y ait une différence. addSubview:est une méthode simple et pratique pour

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

0

1.addSubview ajouter une sous-vue dans le tableau puis ajouter dans la couche de vue

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

}

Pendant l'insertion, 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];
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.