Unterschied zwischen addSubview und insertSubview in der UIView-Klasse

85

Was ist der Unterschied zwischen addSubviewund insertSubViewMethoden, wenn eine Ansicht programmgesteuert hinzugefügt wird?

Ashwani K.
quelle

Antworten:

103

Der einzige Unterschied besteht darin, wo die Ansicht hinzugefügt wird: ob es sich um die vorderste Ansicht handelt ( addSubview:) oder vor der 5. Unteransicht ( insertSubview:atIndex:) oder ob sie sich unmittelbar hinter einer anderen Unteransicht befindet ( insertSubview:aboveSubview:).

Mahboudz
quelle
45

Mit können insertSubView:Sie den Index angeben, der die Z-Reihenfolge der Ansichten bestimmt. Eine Ansicht mit einem höheren Index liegt über der mit niedrigeren Indizes.

Nikolai Ruhe
quelle
Danke, ich wollte, dass es einen spezifischen Unterschied in der Verwendung dieser beiden Funktionen gibt
Ashwani K
1
Abgesehen von dem spezifischen Unterschied, den ich in meiner Antwort beschrieben habe, gibt es keinen.
Nikolai Ruhe
29

Ich glaube nicht, dass es einen Unterschied gibt. addSubview:ist einfach eine bequeme Methode für

[view insertSubview:aView atIndex:[view.subviews count]]
Splitter
quelle
0

1.addSubview fügt eine Unteransicht im Array hinzu und fügt sie dann in der Ansichtsschicht hinzu

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

}}

2.Während insertSubview Ihre Ansicht als Unteransicht hinzufügt, rufen Sie auf [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
user2369870
quelle