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


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


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.


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

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];
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.