Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Swift检查子视图是否位于视图中_Ios_Swift_Uiview_Subview - Fatal编程技术网

Ios 使用Swift检查子视图是否位于视图中

Ios 使用Swift检查子视图是否位于视图中,ios,swift,uiview,subview,Ios,Swift,Uiview,Subview,如何测试子视图是否已添加到父视图?如果还没有添加,我想添加它。否则,我要删除它。您可以使用UIView方法: 如果mySubview!=nil取决于您的实现。这是一种更干净的方法: if myView != nil { // Make sure the view exists if self.view.subviews.contains(myView) { self.myView.removeFromSuperview() // Remove it

如何测试子视图是否已添加到父视图?如果还没有添加,我想添加它。否则,我要删除它。

您可以使用
UIView
方法:


如果mySubview!=nil取决于您的实现。

这是一种更干净的方法:

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

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

这里我们使用了两种不同的视图。父视图是在其中搜索子视图并检查是否添加到父视图的视图

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

可能重复(重要的是,该问题已经有了快速的答案…)为了回应nhgrif的评论,您链接的答案(一个Obj-C问题)在您发布评论的同一天被(您)编辑。在上午11:45发布此问题时,是否有Swift?这是一个充分的答案吗?如果是这样,为什么要更新它?我不确定它是否更干净,但它看起来是一个很好的替代方法。这实际上删除了该类型视图的第一个视图,但不是您可能想要的
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.
}