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
6
A
risposta
24
È possibile utilizzare il metodo di UIView
isDescendantOfView
:
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
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
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? –