Swift:清除UIView

Mar*_*cus 2 xcode uiview ios swift

我在UIView中使用PNChart,我的方法超时运行,它将向图添加一条附加线,而不是重新创建整个图。在添加子视图之前,如何清除UIView?

     @IBOutlet weak var lineChart: UIView!


    ...
    // in function
    theLineChart.chartData = [actualData]
    theLineChart.strokeChart()
    // want to clear self.lineChart here
    self.lineChart.addSubview(theLineChart)
Run Code Online (Sandbox Code Playgroud)

Ark*_*kku 6

如果“清除”是指从其中删除所有以前添加的子视图,则可以尝试以下操作:

while let subview = lineChart.subviews.last {
    subview.removeFromSuperview()
}
Run Code Online (Sandbox Code Playgroud)

需要注意的是,它lineChart应该保持简单UIView(或您知道实现的自制子类),否则它可能具有不应删除的内部子视图。

再说一次,如果只不过是一个普通UIView的视图,您可以简单地用一个新视图替换整个视图(如果需要,这甚至可以使在旧视图和新视图之间淡入淡出变得简单)。