当前位置:  开发笔记 > 编程语言 > 正文

uiTableView选择上一个选定的行?

如何解决《uiTableView选择上一个选定的行?》经验,为你挑选了1个好方法。

我有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方法".



1> joelfischerr..:

我觉得你的问题是,你使用"didDeselectRowAtIndexPath"(DID selectRowAtIndexPath),而你想使用"didSelectRowAtIndexPath方法".

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有