如何加载视图swift超过一次?

时间:2016-09-23 02:04:52

标签: ios swift

我有一个视图(DataInputContainerView),我将该视图加载到DataController。这是我的数据加载DataInputContainerView到DataController

var heightInput: CGFloat = 50
lazy var inputContainerView: DataInputContainerView = {
    let dataInputContainerView = DataInputContainerView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.heightInput))
    dataInputContainerView.dataController = self
    return dataInputContainerView
}()

该代码是有效的。但我想再次加载,例如

@IBAction func loadAgain(sender: AnyObject) {
    self.heightInput += 15
    // Put here to load that view again
}

我想要高度视图+15并再次加载

1 个答案:

答案 0 :(得分:0)

所以你想要创建DataInputContainerView类的多个实例的代码吗?

不要使用懒惰的财产。这会在第一次调用时创建一个实例,并且每次都会返回相同的实例。

相反,创建一个返回DataInputContainerView

的函数
func makeDataInputContainerView(height: height: CGFloat) ->
  DataInputContainerView {
    let rect = CGRect(x: 0, y: 0, width: self.view.frame.width, 
      height: height)
    let dataInputContainerView = DataInputContainerView(frame: rect)
    dataInputContainerView.dataController = self
    return dataInputContainerView
}

然后叫它:

var height = 50

for (_ in 1...5) {
   var newDataInputContainerView = makeDataInputContainerView(height: height)
   self.view.addSubview(newDataInputContainerView)
}