2016-09-23 47 views
0

我有一個視圖(DataInputContainerView),我將該視圖加載到DataController。這是我的代碼DataController加載DataInputContainerView如何多次加載視圖swift?

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

所以,你要的代碼,將創建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) 
} 
+0

但是,我可以叫我的數據DataInputContainerView?比如,如果我以前使用我的代碼,我可以調用inputContainerView.textView –

+0

如果您不知道視圖的數量或爲它們創建更多實例變量,請將它們放入數組中,如果您知道 – Tj3n

+0

是否可以舉例創建變量爲他們? –