我有didDeselectRowAtIndexPath
委托功能的问题 .当我第一次选择时,didDeselectRowAtIndexPath
不会被调用.
但是当我选择另一个单元格时,didDeselectRowAtIndexPath
会调用但是具有前一个选择的索引路径.
我们来举个例子:
我在索引5处选择了行.所以什么都不会发生.
我在索引12处选择了行,然后didDeselectRowAtIndexPath
将使用indexPath.row = 5调用.
我不知道为什么会这样,这是我的代码:谢谢
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; } }
joelfischerr.. 7
我觉得你的问题是,你使用"didDeselectRowAtIndexPath"(DID 德 selectRowAtIndexPath),而你想使用"didSelectRowAtIndexPath方法".
我觉得你的问题是,你使用"didDeselectRowAtIndexPath"(DID 德 selectRowAtIndexPath),而你想使用"didSelectRowAtIndexPath方法".