Swift(Xcode 6.1 GM) - 在didSelectRowAtIndexPath上设置附件类型无法正确显示

时间:2014-09-30 21:14:45

标签: ios xcode swift ios8

当我运行此代码并点击一个单元格时,它总是将复选标记放在最底部的单元格上,如果我上下滚动表格视图,则将其放在最顶部的单元格上。有任何想法吗?

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return resultsArray.count
}

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

    cell = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

    if (cell != nil) {

        cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")

    }

    cell?.textLabel?.text = resultsArray[indexPath.row] as? String

    return cell!

}


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

    println(indexPath.row)

    if cell?.accessoryType != UITableViewCellAccessoryType.Checkmark {

        cell?.accessoryType = UITableViewCellAccessoryType.Checkmark

    } else if cell?.accessoryType == UITableViewCellAccessoryType.Checkmark  {

        cell?.accessoryType = UITableViewCellAccessoryType.None
    }

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

1 个答案:

答案 0 :(得分:0)

倒数第二种方法中细胞来自何处?你正在使用手机吗?很多。它应该是cellForIndex方法中的局部变量;你看起来像是在实例级别定义了这个,这解释了你所看到的行为。