Differenza tra addSubview e insertSubview nella classe UIView


Risposte:


103

L'unica differenza è nel punto in cui viene aggiunta la vista: se è la vista in primo piano ( addSubview:), o è prima della quinta sottoview ( insertSubview:atIndex:) o se è immediatamente dietro un'altra sottoview ( insertSubview:aboveSubview:).


46

Utilizzando insertSubView:è possibile specificare l'indice, che determina l'ordine z delle viste. Una vista con un indice più alto è al di sopra di quelle con un indice più basso.


Grazie, volevo che ci fosse una differenza specifica negli usi di queste due funzioni
Ashwani K

1
A parte la differenza specifica che ho descritto nella mia risposta, non ce n'è.
Nikolai Ruhe,

29

Non credo ci sia differenza. addSubview:è semplice un metodo conveniente per

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

0

1.addSubview aggiunge la subview nell'array quindi aggiungi nel View'slayer

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

}

2.Mentre insertSubview aggiungi la tua vista come sottoview quindi chiama [_layer insertSublayer:subview.layer atIndex:index];

- (void)insertSubview:(UIView *)subview atIndex:(NSInteger)index
{
  [self addSubview:subview];
  [_layer insertSublayer:subview.layer atIndex:index];
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.