gpt4 book ai didi

ios - 您如何引用在 for 循环中创建的特定 View ?

转载 作者:行者123 更新时间:2023-11-28 14:01:02 24 4
gpt4 key购买 nike

我。我使用 for 循环在我的 View Controller 中创建了几个 TableView

for index in 0...array.count - 1 {

if let table = Bundle.main.loadNibNamed("Table", owner: self, options: nil)?.first as? Table {

table.frame.origin.y = 200 * CGFloat(index) + 100

table.dataSource = self
table.delegate = self
table.register(UINib.init(nibName: "Cell", bundle: nil), forCellReuseIdentifier: "Cell")
table.isScrollEnabled = false

self.view.addSubview(table)
}

}

二。现在我想分别指定每个表的行数。显然是这样完成的:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of items in the sample data structure.

var count:Int?

if tableView == self.tableView {
count = sampleData.count
}

if tableView == self.tableView1 {
count = sampleData1.count
}

return count!

}

该示例引用了使用 self.tableView 和 self.tableView1 的两个不同的 tableview。如何引用在我的 for 循环中创建的特定 TableView ?它们都是作为“表”创建的,我没有将它们存储在唯一变量下。

最佳答案

我建议创建一个属性来保存您的 Table 实例:

var tables: [Table]?

然后您的例程可以填充此数组:

tables = (0..<array.count).compactMap { index -> Table? in
guard let table = Bundle.main.loadNibNamed("Table", owner: self)?.first as? Table else {
return nil
}

table.frame.origin.y = 200 * CGFloat(index) + 100

table.dataSource = self
table.delegate = self
table.register(UINib(nibName: "Cell", bundle: nil), forCellReuseIdentifier: "Cell")
table.isScrollEnabled = false

return table
}

tables?.forEach { view.addSubview($0) }

然后您可以在各种数据源方法中使用该数组。

关于ios - 您如何引用在 for 循环中创建的特定 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com