Différence entre addSubview et insertSubview dans la classe UIView

86

Quelle est la différence entre les méthodes addSubviewet insertSubViewlorsqu'une vue est ajoutée par programme?

Ashwani K
la source

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

Mahboudz
la source
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.

Nikolai Ruhe
la source
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]]
mèche
la source
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];
}
user2369870
la source