webentwicklung-frage-antwort-db.com.de

Unterschied zwischen addSubview und insertSubview in der UIView-Klasse

Was ist der Unterschied zwischen den Methoden addSubview und insertSubView, wenn eine Ansicht programmgesteuert hinzugefügt wird?

83
Ashwani K

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

101
mahboudz

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

45
Nikolai Ruhe

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

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

1.addSubview füge Unteransicht in Array und dann in View'slayer hinzu

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

}

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

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