xcode8 swift3带有自定义单元格的多个UITableViews

时间:2016-10-15 16:23:48

标签: uitableview swift3 xcode8

在完成ViewController with a single tableView的优秀撰写之后,我想将问题扩展为 2个 tableViews和自定义单元格属于每个人独立。

目前,我有以下骨架,这是半工作的,我相信有一种更优雅,更不天真的方法来解决这个问题。

  • 在viewDidLoad()
  • 之后
vInfoTV.dataSource = self
vInfoTV.delegate = self
vInfoTV.tag = Int.min

vAppTV.dataSource = self
vAppTV.delegate = self
vAppTV.tag = Int.max
  • numberOfRowsInSection函数
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
    }
} 
  • 现在隐藏一个没有单元格(即没有数据)的tableView的最佳方法是什么?

这是正确的方法吗?欢迎所有评论!

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 像我这样设置tableView的标签是否合适,并根据标签值打开它们?

    是的,你完全按照我的方式行事。设置表格的标签'不同。但是我不会说Int.min或Int.max,而是我想立即知道我设置为tableviews'标签。所以,我只选择99和100之类的数字。我不会选择0和1的原因是默认情况下任何对象的标记都是0.所以,如果我放99,我会保持自己的安全说即使有人来到我的视图中拖动另一个桌面视图,它仍然不会与以前的视图冲突。

  2. 现在隐藏一个没有单元格(即没有数据)的tableView的最佳方法是什么? 如果您没有numberOfRowsInSection中的数据,则您的tableview将不会显示,您将行号设置为所需数据数组中的数据数。