2015-06-19 15 views
6

Come si verifica se una sottoview è già stata aggiunta a una vista genitore? Se non è stato aggiunto, voglio aggiungerlo. Altrimenti, voglio rimuoverlo.Verificare se una vista secondaria è in una vista utilizzando Swift

+0

possibile duplicato del [Controllare se una visualizzazione secondaria è in una vista] (http://stackoverflow.com/questions/7421298/check-if- a-subview-is-in-a-view) (importante, questa domanda ha già una risposta rapida ...) – nhgrif

+1

In risposta al commento di nhgrif, la risposta che hai collegato (una domanda Obj-C) è stata modificata (da TE) lo stesso giorno in cui hai postato il commento. Aveva Swift alle 11:45 quando questa domanda è stata pubblicata ed è stata una risposta adeguata? Se sì, perché l'hai aggiornato? –

risposta

24

È possibile utilizzare il metodo di UIViewisDescendantOfView:

if mySubview.isDescendantOfView(someParentView) { 
    someParentView.mySubview.removeFromSuperview() 
} else { 
    someParentView.addSubview(mySubview) 
} 

Potrebbe anche essere necessario circondare tutto con if mySubview != nil a seconda dell'implementazione.

6

Questo è un modo molto più pulito per farlo:

if myView != nil { // Make sure the view exists 

     if self.view.subviews.contains(myView) { 
      self.myView.removeFromSuperview() // Remove it 
     } else { 
      // Do Nothing 
     } 
    } 
} 
+0

Non sono sicuro che sia più pulito o meno, ma sembra un buon metodo alternativo. – Suragch