在Custom Cell中添加Custom Cell

时间:2016-12-12 13:02:56

标签: ios swift uitableview

我有一个有趣的问题。因为我是Swift的新手。

我在TableView上创建并使用Storyboard添加了 CUSTOM CELL 。现在我想添加另一个 CUSTOM CELL 点击第一个 CUSTOM CELL UIButton。

使用XIB创建第二个自定义单元格。现在,当我在 didload 中注册第二个Cell时,我看到空白的tableview,因为第二个自定义单元格为空。

我使用了以下代码:

用于注册第二个小区

   self.tableView.registerNib(UINib(nibName: "customCell", bundle: nil), forCellReuseIdentifier: "customCell")

和索引

行的单元格
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{

        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell

        cell.nameLbl.text = "Hello hello Hello"

        let Customcell = tableView.dequeueReusableCellWithIdentifier("customCell", forIndexPath: indexPath) as! customCell


        if self.Selected == "YES" {
            if self.selectedValue == indexPath.row {


                return Customcell
            }

            return cell

        }
        else{

            return cell
        }
    }

此处Cell对象用于Storyboard Cell,Customcell用于XIB Second自定义单元格。

请建议我怎么做。

1 个答案:

答案 0 :(得分:1)

首先确保你的ViewController是tableView的UITableViewDelegate和UITableViewDataSource,并且你有一个tableView的出口

接下来,您需要在viewDidLoad方法中注册自定义单元格:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.register(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "customCell")
}

如果要按下时要修改多个单元格,最简单的方法是保存已选择的单元格数组。这可以是ViewController中的变量:

var customCellIndexPaths: [IndexPath] = []

选择单元格后,您只需将其添加到自定义单元格索引路径数组(如果它还不是自定义单元格),然后重新加载该单元格:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if customCellIndexPaths.contains(indexPath) == false {
        customCellIndexPaths.append(indexPath)
        tableView.reloadRows(at: [indexPath], with: .automatic)
    }
}

在cellForRowAt方法中,我们必须检查是否已选择单元格,如果是,则返回自定义单元格,否则返回正常单元格:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if customCellIndexPaths.contains(indexPath) {
        return tableView.dequeueReusableCell(withIdentifier: "customCell")!
    }

    let cell = UITableViewCell(style: .default, reuseIdentifier: "normalCell")
    cell.textLabel?.text = "Regular Cell"
    return cell
}

你有它。现在,您应该在选择时接收正常单元格成为CustomCell的平滑动画。