使用 Swift 检查子视图是否在视图中
Check if a subview is in a view using Swift
如何测试子视图是否已添加到父视图?如果没有添加,我想添加它。否则,我想删除它。
你可以使用UIView
方法isDescendantOfView
:
if mySubview.isDescendant(of: someParentView) {
mySubview.removeFromSuperview()
} else {
someParentView.addSubview(mySubview)
}
根据您的实施情况,您可能还需要用 if mySubview != nil
包围所有内容。
这是一种更简洁的方法:
if myView != nil { // Make sure the view exists
if self.view.subviews.contains(myView) {
self.myView.removeFromSuperview() // Remove it
} else {
// Do Nothing
}
}
}
for view in self.view.subviews {
if let subView = view as? YourNameView {
subView.removeFromSuperview()
break
}
}
这里我们使用了两种不同的视图。父视图是我们正在搜索后代视图并检查是否添加到父视图的视图。
if parentView.subviews.contains(descendantView) {
// descendant view added to the parent view.
}else{
// descendant view not added to the parent view.
}
如何测试子视图是否已添加到父视图?如果没有添加,我想添加它。否则,我想删除它。
你可以使用UIView
方法isDescendantOfView
:
if mySubview.isDescendant(of: someParentView) {
mySubview.removeFromSuperview()
} else {
someParentView.addSubview(mySubview)
}
根据您的实施情况,您可能还需要用 if mySubview != nil
包围所有内容。
这是一种更简洁的方法:
if myView != nil { // Make sure the view exists
if self.view.subviews.contains(myView) {
self.myView.removeFromSuperview() // Remove it
} else {
// Do Nothing
}
}
}
for view in self.view.subviews {
if let subView = view as? YourNameView {
subView.removeFromSuperview()
break
}
}
这里我们使用了两种不同的视图。父视图是我们正在搜索后代视图并检查是否添加到父视图的视图。
if parentView.subviews.contains(descendantView) {
// descendant view added to the parent view.
}else{
// descendant view not added to the parent view.
}