2015-06-19 42 views
6

Làm cách nào để kiểm tra xem một chế độ xem phụ đã được thêm vào chế độ xem gốc chưa? Nếu nó chưa được thêm vào, tôi muốn thêm nó. Nếu không, tôi muốn xóa nó.Kiểm tra xem một chế độ xem phụ có ở chế độ xem bằng Swift

+0

thể trùng lặp của [Kiểm tra xem một subview là trong một lần xem] (http://stackoverflow.com/questions/7421298/check-if- a-subview-is-in-a-view) (quan trọng, câu hỏi đó đã có câu trả lời Swift ...) – nhgrif

+1

Để trả lời nhận xét của nhgrif, câu trả lời bạn đã liên kết (câu hỏi Obj-C) đã được chỉnh sửa (bởi BẠN) cùng ngày bạn đăng nhận xét. Nó đã có Swift lúc 11:45 sáng khi câu hỏi này đã được đăng và nó là một câu trả lời đầy đủ? Nếu vậy, tại sao bạn cập nhật nó? –

Trả lời

24

Bạn có thể sử dụng phương pháp UIViewisDescendantOfView:

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

Bạn cũng có thể cần phải bao quanh tất cả mọi thứ với if mySubview != nil tùy thuộc vào thực hiện của bạn.

6

Đây là một cách sạch hơn để làm điều đó:

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

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

Tôi không chắc chắn nếu nó sạch hơn hay không, nhưng nó trông giống như một phương pháp thay thế tốt. – Suragch

Các vấn đề liên quan