Self Sizing Cell仅适用于一个原型单元

时间:2015-04-20 12:12:58

标签: ios uitableview swift

我有两个原型TableViewCells。一个就是现在的其他复制粘贴。 BasicCellBasicCell2。我刚刚为BasicCell

复制了BasicCell2

这是我的Swift代码

     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if(indexPath.row == 0 && flagcheck == 0 ) {
        var cell2 = tableView.dequeueReusableCellWithIdentifier("BasicCell2") as BasicCell2!
        if cell2 == nil {
            cell2 = BasicCell2(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell2")
        }

        cell2.titlet.text = question+"\n"+"\n"
        cell2.backgroundColor = hexStringToUIColor("b2cecf")
        cell2.userInteractionEnabled = false
        return cell2

    }
    else if (indexPath.row == 0){
        var cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell!
        if cell == nil {
            cell = BasicCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
        }

        cell.titlet.text = question+"\n"+"\n"
        return cell
    }
    else {
        var cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell!
        if cell === nil {
            cell = BasicCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
        }
        cell.titlet.text = self.data1[indexPath.row-1]
        return cell
    }
}

因此,根据代码,第一行满足第一个if条件,并返回cell2。并且第一行没有调整大小。这是相同的截图。当我只使用一个单元时,它工作正常。请不要问我为什么要复制细胞。

Screenshot

1 个答案:

答案 0 :(得分:0)

您可以检查Cell是否为nil,如果它是nill,则可以使用UITableViewCell方法初始化,例如

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if(indexPath.row == 0 && flagcheck == 0 ) {
        let cell2 = tableView.dequeueReusableCellWithIdentifier("BasicCell2") as BasicCell2
        if cell2 == nil {
            cell2 = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell2")
        }

        cell2.titlet.text = question+"\n"+"\n"
        cell2.backgroundColor = hexStringToUIColor("b2cecf")
        cell2.userInteractionEnabled = false
        return cell2

    }
    else if (indexPath.row == 0){
        let cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell
        if cell == nil {
            cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
        }

        cell.titlet.text = question+"\n"+"\n"
        return cell
    }
    else {
        let cell = tableView.dequeueReusableCellWithIdentifier("BasicCell") as BasicCell
        if cell == nil {
            cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "BasicCell")
        }
        cell.titlet.text = self.data1[indexPath.row-1]
        return cell
    }
}

HTH,享受编码!!