Frage Unterschied zwischen addSubview und insertSubview in der UIView-Klasse


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


78
2017-10-05 09:54


Ursprung


Antworten:


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


98
2017-10-05 11:18



Verwenden 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.


43
2017-10-05 10:10



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

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

29
2017-10-05 11:10



1.addSubview fügt Unteransicht in Array hinzu und fügt sie dann in Ansichtslayer hinzu

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

}

2.Wählen Sie insertSubview Ihre Ansicht als Unteransicht und rufen Sie dann an [_layer insertSublayer:subview.layer atIndex:index];

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

0
2018-01-23 10:45