Różnica między addSubview i insertSubview w klasie UIView

86

Jaka jest różnica między metodami addSubviewi insertSubView, gdy widok jest dodawany programowo?

Ashwani K.
źródło

Odpowiedzi:

103

Jedyna różnica polega na tym, gdzie widok jest dodawany: czy jest to widok na pierwszym planie ( addSubview:), czy przed piątym widokiem podrzędnym ( insertSubview:atIndex:), lub bezpośrednio za innym widokiem podrzędnym ( insertSubview:aboveSubview:).

mahboudz
źródło
46

Za pomocą insertSubView:możesz określić indeks, który określa kolejność widoków z. Widok z wyższym indeksem leży nad tymi z niższymi wskaźnikami.

Nikolai Ruhe
źródło
Dzięki, chciałem wiedzieć, czy istnieje konkretna różnica w zastosowaniach tych dwóch funkcji
Ashwani K
1
Poza konkretną różnicą, którą opisałem w mojej odpowiedzi, nie ma żadnej.
Nikolai Ruhe
29

Myślę, że nie ma różnicy. addSubview:to prosta, wygodna metoda

[view insertSubview:aView atIndex:[view.subviews count]]
drzazga
źródło
0

1.addSubview dodaj subview w tablicy, a następnie dodaj w View'slayer

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

}

2. Podczas insertSubview dodaj swój widok jako subview, a następnie zadzwoń [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
user2369870
źródło