我有一个视图(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并再次加载
答案 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)
}