多个动态表,动态列为swift 4
表格:[{多个动态表,动态列为swift 4,swift,dynamically-generated,Swift,Dynamically Generated,表格:[{ Id, 名称, 类型, 行[{ Id, 名称 }], 列[{ Id, 名称 }] }] (一个简单的表达) 我需要向控制器添加多个表。数据将以json的形式提供。图像将被排序到视图控制器中 我该怎么做? 我正在以编程方式使用swift 4 tableview 如何在单个ControllerView中动态创建多个tableview 该表必须有多个列。要按表类型填充的表行。 如果行类型为复选框,则第一列中的标签将是所有其他列中的复选框 我怎么做 从现在开始谢谢。我建议您使用一个包含多个
Id,
名称,
类型,
行[{
Id,
名称
}],
列[{
Id,
名称
}]
}] (一个简单的表达) 我需要向控制器添加多个表。数据将以json的形式提供。图像将被排序到视图控制器中 我该怎么做? 我正在以编程方式使用swift 4 tableview 如何在单个ControllerView中动态创建多个tableview 该表必须有多个列。要按表类型填充的表行。 如果行类型为复选框,则第一列中的标签将是所有其他列中的复选框 我怎么做
从现在开始谢谢。我建议您使用一个包含多个部分和行的tableview。不确定您的UX外观如何。但是当我们有了numberOfSection和NumberOf Rows的概念,其中每个部分都可以通过标题(分组的tableview)来分隔时,我们就不知道为什么我们需要在一个ViewController中使用多个tableview。创建多个tableview相对来说比较简单。我假设CollectionView也是如此,如果您想要真正的多列而不是mukti组件tableView单元格,那么就需要CollectionView,尽管我从未尝试过 简单地说,您需要实例化两个TableView,并将它们添加为子视图。有趣的一点是处理委托函数。你有两个选择:
class MyCustomCell: UITableViewCell {
static let cellID = "CustomCellID"
// set up custom tableViewCell as required
}
class MyVC: UIViewController {
var table1 = UITableView()
var table2 = UITableView()
override func viewDidLoad() {
super.viewDidLoad
table1.delegate = self
table1.datasource = self
table2.delegate = self
table2.datasource = self
view.addSubview(table1)
view.addSubview(table2)
tableView.register(MyCustomCell.self, forCellReuseIdentifier: MyCustomCell.cellID)
tableView.register(MyCustomCell.self, forCellReuseIdentifier: MyCustomCell.cellID)
//some AutoLayout code to layout the tables in the view
}
}
extension MyVC: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView === table1 {
//return appropriate value for section in table 1
} else {
//return appropriate value for section in table 1
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView === table1 {
//create and return cell for table 1
} else {
//create and return cell for table 2
}
}
}
显然,这只是大纲,需要实际的实现代码和其他必要的tableView函数。注意使用==
检查表视图。这将检查它们是否是完全相同的对象,而不仅仅是等效对象
如果两个表都需要相同的值(例如,您希望它们使用相同的tableViewCell),那么您可以不进行检查就删除它们
写了所有这些之后,除非至少有一个表显示静态行数,并且可以禁用滚动,否则我会说它在iPhone上看起来很糟糕,在大多数情况下,在iPad上也不会更好 TableView不能有超过1列。改用collectionView。我可以添加一个具有可变列的动态collectionView吗?我的UX分区将是分区。她坐在一个叫达内梅勒·奥拉卡的座位上。这里的问题是我需要在一页上显示这个列表。下面是链接中图片的示例。这里只有一个部分。我希望你能把这张照片放在第一个问题里!这只需要一个带有一个分区的tableView单元格和一个自定义表格单元格及标题。@lifeCode您的用户体验非常简单,正如Flanger所说的一个带有自定义单元格的tableView就足够了,请根据您的滚动要求,将servey部分和全部作为tableView标题或分区标题。对不起。这张桌子上可能有n块。行列可能来自一个变量。行数可以是N。列数可以是N。我将尝试上面共享的代码。如果列数是N,那么您如何在屏幕中适应它,在这种情况下,它应该是水平滚动(对于动态列)。更好的方法是tableview单元格应该包含CollectionViews给定您作为注释添加到另一个答案的图像,这表明您不需要您最初要求的内容,那么这可能不相关,但我将把它留在这里,以防其他人通过搜索多个动态tableview发现它!