Проверьте, есть ли подвью в представлении с помощью Swift

Как проверить, добавлено ли подвью в родительское представление? Если он не был добавлен, я хочу добавить его. В противном случае я хочу удалить его.

Ответ 1

Вы можете использовать метод UIView isDescendantOfView:

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

Вам также может потребоваться окружить все с помощью if mySubview != nil в зависимости от вашей реализации.

Ответ 2

Это гораздо более чистый способ сделать это:

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

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

Ответ 3

for view in self.view.subviews {
    if let subView = view as? YourNameView {
        subView.removeFromSuperview()
        break
    }
}

Ответ 4

Здесь мы использовали два разных взгляда. Родительский вид - это вид, в котором мы ищем потомок и проверяем, добавлен ли родительский вид в родительский или нет.

if parentView.subviews.contains(descendantView) {
   // descendant view added to the parent view.
  }else{
   // descendant view not added to the parent view.
}