我在swift中使用可扩展单元格进行了UITableView
点击它们。在展开后,单元格显示UIDatePicker
。
扩张本身工作正常,但只有在细胞扩张时才能看到的细胞内容会透过细胞发光。这是我正在谈论的截图:
细胞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
仅在细胞展开时才可见
答案 0 :(得分:2)
以下是我建议让细胞重复使用正常的方法。
打开NewExpenseTableCell的.xib文件。转到属性检查器,输入" NewExpenseTableCell"作为标识符。
在视图控制器的viewDidLoad
方法中,像这样注册nib:
self.tableView.registerNib(UINib(nibName: "NewExpenseTableCell", bundle: nil), forCellReuseIdentifier: "NewExpenseTableCell")
在cellForRowAtIndexPath
方法中,将前四行替换为:
var cell = tableView.dequeueReusableCellWithIdentifier("NewExpenseTableCell") as NewExpenseTableCell