在完成ViewController with a single tableView的优秀撰写之后,我想将问题扩展为 2个 tableViews和自定义单元格属于每个人独立。
目前,我有以下骨架,这是半工作的,我相信有一种更优雅,更不天真的方法来解决这个问题。
vInfoTV.dataSource = self
vInfoTV.delegate = self
vInfoTV.tag = Int.min
vAppTV.dataSource = self
vAppTV.delegate = self
vAppTV.tag = Int.max
func tableView(_ tableView: UITableView, numberOfRowsInSection section:Int) -> Int {
if tableView.tag == Int.min {
return mydata.cats.count
} else {
return mydata.dogs.count
}
}
是否适合像我这样设置tableView的标签,并根据标签值打开它们?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView.tag == Int.min {
// Cat Table View
if indexPath.row == 0 {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "firstCustomCell")
//set the data here
return cell
}
else if indexPath.row == 1 {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "secondCustomCell")
//set the data here
return cell
}
else {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "thirdCustomCell")
//set the data here
return cell
}
} else {
// Dog Table View
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "poodleCell", for: indexPath) as! NewApplicationViewCell
cell.typeL.text = Dogs[(indexPath as NSIndexPath).row].type
return cell
}
else {
let cell = tableView.dequeueReusableCell(withIdentifier: "mastifCell", for: indexPath) as! InitialDMVInspectionTableView
cell.typeL.text = Dogs[(indexPath as NSIndexPath).row].type
return cell
}
}
这是正确的方法吗?欢迎所有评论!
谢谢!
答案 0 :(得分:1)
像我这样设置tableView的标签是否合适,并根据标签值打开它们?
是的,你完全按照我的方式行事。设置表格的标签'不同。但是我不会说Int.min或Int.max,而是我想立即知道我设置为tableviews'标签。所以,我只选择99和100之类的数字。我不会选择0和1的原因是默认情况下任何对象的标记都是0.所以,如果我放99,我会保持自己的安全说即使有人来到我的视图中拖动另一个桌面视图,它仍然不会与以前的视图冲突。现在隐藏一个没有单元格(即没有数据)的tableView的最佳方法是什么? 如果您没有numberOfRowsInSection中的数据,则您的tableview将不会显示,您将行号设置为所需数据数组中的数据数。