UITableViewCells的可扩展内容"闪耀"槽

时间:2014-11-24 20:25:40

标签: ios uitableview swift

我在swift中使用可扩展单元格进行了UITableView点击它们。在展开后,单元格显示UIDatePicker

扩张本身工作正常,但只有在细胞扩张时才能看到的细胞内容会透过细胞发光。这是我正在谈论的截图: enter image description here

细胞1被扩展,而其他细胞则没有。正如您所看到的,它们的可扩展内容是可见的,而实际上它不应该是。

以下是我使用的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var cellIdentifier = "Cell";

    var cell: NewExpenseTableCell;
    var array: NSArray = NSBundle.mainBundle().loadNibNamed("Cell", owner: self, options: nil);

    cell = array.objectAtIndex(0) as NewExpenseTableCell;
    cell.backgroundColor = UIColor.whiteColor();

    cell.descriptionLabel?.text = descriptionLabels[indexPath.item];

    return cell;
}

var selectedRowIndex = -1;

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    if selectedRowIndex == indexPath.row {
        selectedRowIndex = -1;
    } else {
        self.selectedRowIndex = indexPath.row;
    }
    newExpenseTable.beginUpdates();
    newExpenseTable.endUpdates();
}

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    if indexPath.row == selectedRowIndex {            
        return 206;
    }       
    return 55;
}

有人能告诉我如何确保UIDatePicker 仅在细胞展开时才可见

1 个答案:

答案 0 :(得分:2)

以下是我建议让细胞重复使用正常的方法。

  1. 打开NewExpenseTableCell的.xib文件。转到属性检查器,输入" NewExpenseTableCell"作为标识符。

  2. 在视图控制器的viewDidLoad方法中,像这样注册nib:

    self.tableView.registerNib(UINib(nibName: "NewExpenseTableCell", bundle: nil), forCellReuseIdentifier: "NewExpenseTableCell")
    
  3. cellForRowAtIndexPath方法中,将前四行替换为:

    var cell = tableView.dequeueReusableCellWithIdentifier("NewExpenseTableCell") as NewExpenseTableCell