我遇到didDeselectRowAtIndexPath
委托功能问题。
当我第一次选择时,didDeselectRowAtIndexPath
没有被调用。
但是当我选择另一个单元格时,会调用didDeselectRowAtIndexPath
但是具有上一个选择的索引路径。
让我们举个例子:
didDeselectRowAtIndexPath
。我不知道为什么会这样,这是我的代码:谢谢
class testUICollectionView: UIViewController ,UITableViewDelegate,UITableViewDataSource {
let tableItems :NSMutableArray = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5",
"Item 6", "Item 7", "Item 8", "Item 9", "Item 10", "Item 11",
"Item 12", "Item 13", "Item 14", "Item 15","Item 12", "Item 13", "Item 14", "Item 15","Item 12", "Item 13", "Item 14", "Item 15"]
var tableView:UITableView!;
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.blueColor();
tableView = UITableView();
tableView.frame = self.view.frame;
tableView.registerClass(TableViewCell.self, forCellReuseIdentifier: "Cell");
tableView.dataSource = self;
tableView.delegate = self;
self.view.addSubview(tableView)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of rows in the section.
return tableItems.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell
cell.setTextLabel(tableItems[indexPath.row] as! String);
return cell
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
print("inexPath.row : " + String(indexPath.row));
}
}
////////////////////////// table view cell
class TableViewCell:UITableViewCell{
var label:UILabel!;
func setTextLabel(new_text:String){
if (label == nil){
label = UILabel();
label.frame = self.contentView.frame;
label.textColor = UIColor.whiteColor();
label.backgroundColor = UIColor.whiteColor();
label.textColor = UIColor.blackColor();
self.contentView.addSubview(label);
}
label.text = new_text;
}
}
答案 0 :(得分:7)
我认为你的问题是你使用" didDeselectRowAtIndexPath" (当你想使用" didSelectRowAtIndexPath"时, De selectRowAtIndexPath)。
答案 1 :(得分:3)
只能同时选择一个单元格。当您选择另一个单元格时,默认情况下将取消选择之前选择的单元格。这就是使用之前的didDeselectRowAtIndexPath:
indexPath
的原因