通常情况下,如果你有多个UIViews,你可以通过在索引处使用insertSubview来堆叠它们。
self.view.insertSubview(testUIView, atIndex: 1)
但我想使用单个UIView。
我有一系列不同的UIViews
let plotUIViews: [UIView] = [testView(), FaceView()]
这里是testView
import UIKit
class testView: UIView {
override func drawRect(rect: CGRect) {
var greenView = UIView(frame: CGRectMake(100, 200, 100, 100))
greenView.backgroundColor=UIColor.greenColor()
}
}
我有一个通用的UIView
@IBOutlet var testUIView: UIView!
并且想要做到这一点,它有点像perl-ish而不是swift-ish(为了节省在每层上绘制所有视图然后操纵索引的记忆)
self.testUIView?.removeFromSuperview()
self.testUIView = nil
switch plotValue{
case 0:
self.testUIview=plotUIViews[0]
case 1:
self.testUIview=plotUIViews[1]
case 2:
self.testUIview=plotUIViews[2]
etc
}
self.view.insertSubview(testUIView, atIndex: 2)
testUIView
中没有显示任何内容感谢任何帮助或指示。
答案 0 :(得分:1)
听起来你想要的只是一次只显示一个情节视图。因此,在显示新的视图之前,删除之前的绘图视图(
)self.testUIView?.removeFromSuperview()
self.testUIView = nil
switch plotValue {
...
}
self.view.insertSubview(testUIView, atIndex: 2)