如何清除UIView(ios)

时间:2018-04-04 21:43:49

标签: ios swift uiview

我有一个searchBar,有两个范围标题。当我选择其中一个时,我想在UIView中显示此类别的一些数据。

我试图做到这一点,因为简单的结论不起作用。它可以工作,但是当我看到范围标题时,数据会叠加在一起。

我知道UITableViewreloadData(),但我需要一个UIView,因为我制作了一个标签云(在代码中使用标签)。

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController?.isNavigationBarHidden = false
    self.navigationController?.navigationBar.barTintColor = UIColor.white
    self.navigationController?.navigationBar.shadowImage = UIImage()
    searchBar.delegate = self

    checkData(data)
    if index == 0 {
        createTagsLabel(main: City)
        view.setNeedsDisplay()
    }
    else {
        createTagsLabel(main: Contractor)
        //listTags.clearsContextBeforeDrawing
    }
}

func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
    index = selectedScope
    searchBar.text = nil
    viewDidLoad()
}

1 个答案:

答案 0 :(得分:1)

如果您要删除所有子视图,可以使用subviews属性,如下所示:

view.subviews.forEach { $0.removeFromSuperview() }

但我建议您删除主视图并初始化一个新视图