gpt4 book ai didi

ios - uiTableView 选择上一个选定的行?

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:26 25 4
gpt4 key购买 nike

didDeselectRowAtIndexPath 委托(delegate)函数有问题。当我第一次选择时,didDeselectRowAtIndexPath 没有被调用。

但是当我选择另一个单元格时,didDeselectRowAtIndexPath 被调用,但带有先前选择的索引路径。

举个例子:

  1. 我选择了索引 5 处的行。所以什么都不会发生。
  2. 我选择了索引 12 处的行,然后将使用 indexPath.row = 5 调用 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;
}
}

最佳答案

我认为你的问题是你使用了“didDeselectRowAtIndexPath”(didDeselectRowAtIndexPath),而你想使用“didSelectRowAtIndexPath”。

关于ios - uiTableView 选择上一个选定的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com