web-dev-qa-db-fra.com

Différence entre addSubview et insertSubview dans la classe UIView

Quelle est la différence entre les méthodes addSubview et insertSubView lorsqu'une vue est ajoutée par programme?

83
Ashwani K

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

101
mahboudz

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.

45
Nikolai Ruhe

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]]
29
sliver

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];
}
0
user2369870