当我向上和向下滚动时,我的tableview会突出显示错误的单元格。在.Checkmark
中,我正在尝试添加cell.textLabel?.text
附件视图以及更改func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as! MyCell
cell.textLabel?.text = self.array[indexPath.row]
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
if cell.accessoryType == UITableViewCellAccessoryType.Checkmark {
cell.accessoryType = .None
cell.textLabel!.font = UIFont(name: "HelveticaNeue", size: 16)
tableView.deselectRowAtIndexPath(indexPath, animated: true)
} else if cell.accessoryType == UITableViewCellAccessoryType.None {
cell.accessoryType = .Checkmark
cell.textLabel!.font = UIFont(name: "HelveticaNeue-Bold", size: 16)
}
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
的字体。在滚动时,选择随机行,我手动选择的行有时会取消选择。
function dateValidation()
{
var obj = document.getElementById("<%=txtDate.ClientID%>");
var day = obj.value.split("/")[0];
var month = obj.value.split("/")[1];
var year = obj.value.split("/")[2];
if ((day<1 || day >31) || (month<1&&month>12)&&(year.length != 4))
{
alert("Invalid Format");return false;
}
else
{
var dt = new Date(year, month-1, day);
var today = new Date();
if((dt.getDate() != day) || (dt.getMonth() != month-1) ||(dt.getFullYear()!=year) || (dt>today))
{
alert("Invalid Date");return false;
}
}
}
答案 0 :(得分:3)
声明将跟踪选择哪些行的数组:
var selectedRows:[Bool] = []
您需要确保使用与数据数组相同数量的项目填充它。
然后修改您的cellForRowAtIndexPath
:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as! MyCell
cell.textLabel?.text = self.array[indexPath.row]
if selectedRows[indexPath.row] {
// row selected
cell.accessoryType = .Checkmark
}
else {
cell.accessoryType = .None
}
return cell
}
在您的didSelectRow
功能添加行:
selectedRows[indexPath.row] = !selectedRows[indexPath.row]
当您从didSelectRow
修改单元格时,下一次单元格出列时,它将具有您设置的附件类型。滚动后发生这种情况的原因是因为当您滚动可见的单元格时会出列。因此,您需要为它们手动设置正确的配件类型