选择tableview中的行,删除自定义单元格

时间:2016-04-02 10:36:34

标签: swift uitableview

我的ViewController顶部有一个Searchbar,下面有一个tableview。 tableview有一个自定义单元格,其中包含2个标签。我的问题是,当我运行应用程序并选择行/单元格时,单元格内的所有内容都会消失。然后我强制将空白单元格放在tableview的可见区域之外,这样它就会被重复使用。就在那时,细胞内的一切都回来了。有谁知道它为什么会这样?

我的自定义单元格类(ContactCell.swift):

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.dataSource = self
    tableView.delegate = self
}

我的ViewDidLoad功能:

extension contactsTabelViewController: UITableViewDelegate, UITableViewDataSource {

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("contactCell", forIndexPath: indexPath) as! ContactCell

        if let label = cell.lblContactName{
            label.text = "This is a name"
        }
        if let label3 = cell.lblContactTitle{
            label3.text = "This is a title"
        }

        return ContactCell()
    }
}

我的代表和数据源:

final int GRID_WIDTH = 10;
final int GRID_HEIGHT = 10;
final int BOMB_NUMBER = 10;
final boolean[][] minesArray = new boolean[GRID_WIDTH][GRID_HEIGHT];
for (int i = 0; i < BOMB_NUMBER; i++) {
     //Get random position for the next bomb
     Random rand = new Random();
     int row = rand.nextInt(GRID_WIDTH);
     int col = rand.nextInt(GRID_HEIGHT);
     while(minesArray[row][col]) { //if this position is a bomb
          //we get new position
          row = rand.nextInt(GRID_WIDTH);
          col = rand.nextInt(GRID_HEIGHT);
     }
     minesArray[row][col] = true; //make new position is a bomb
}

1 个答案:

答案 0 :(得分:0)

导致此问题的问题是我返回ContactCell()而不是变量cell

解决方案是: 改变这个:

return ContactCell()

到此:

return cell

cellForRowAtIndexPath函数中。