没有堆叠的多个UIViews的数组

时间:2015-02-12 19:06:13

标签: ios swift uiview

通常情况下,如果你有多个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

中没有显示任何内容

感谢任何帮助或指示。

1 个答案:

答案 0 :(得分:1)

听起来你想要的只是一次只显示一个情节视图。因此,在显示新的视图之前,删除之前的绘图视图(

self.testUIView?.removeFromSuperview()
self.testUIView = nil
switch plotValue {
  ...
}
self.view.insertSubview(testUIView, atIndex: 2)