2015-06-19 88 views
6

如何測試子視圖是否已添加到父視圖?如果沒有添加,我想添加它。否則,我想刪除它。使用Swift檢查子視圖是否在視圖中

+0

可能重複[檢查一個子視圖在一個視圖(http://stackoverflow.com/questions/7421298/check-if- a-subview-is-in-a-view)(重要的是,這個問題已經有了Swift的答案......) – nhgrif

+1

爲了迴應nhgrif的評論,你鏈接到的答案(一個Obj-C問題)被編輯了)您發佈評論的當天。這個問題發佈時,上午11:45有沒有Swift?它是一個合適的答案嗎?如果是這樣,爲什麼你更新它? –

回答

24

可以使用UIView方法isDescendantOfView

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

您可能還需要與周圍取決於您的實現if mySubview != nil一切。

6

這是一個更清潔的方式做到這一點:的

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

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

我不確定它是否更乾淨,但它看起來像一個很好的替代方法。 – Suragch

相關問題