簡體   English   中英

如何多次加載視圖swift?

[英]How to load view swift more than one time?

我有一個視圖(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並再次加載

因此,您是否需要將創建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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM