Unterschied zwischen addSubview und insertSubview in der UIView-Klasse


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


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.


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

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];
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.