在任何tableView函数之外获取indexpath



也许我的问题很简单,我只是太笨了,没有理解它。我的问题是,我想访问

之外的indexPath
overide func tableView(...)

我在我的TableView类中有一个单独的类,比如

func setColor()
{
...
}

在这个类中,我想访问indexPath。我该怎么做呢?

indexPath是一个对象,它被创建并传递给UITabelViewDelegate或UITableViewDataSource方法。它可以让你指示哪个单元被加载/点击等等。

所以你将不能从外部访问这个对象。如果你想改变一个单元格的某些东西,例如背景颜色,你应该将颜色存储在一个属性中,改变这个属性并强制重绘。在创建单元格的委托方法中,使用此属性来设置颜色。

下面是一些示例代码。

ViewController

class TestTableViewController: UIViewController, UITableViewDelegate {
    // Store array of color
    var backColors = [UIColor.redColor(), UIColor.greenColor()]

    // Method which changes color
    func setColor(row: Int, color: UIColor) {
        backColors[row] = color
    }
    // Override draw
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // Create your cell
        // ...
        // Set color
        cell.backgroundColor = backColors[indexPath.row]
    }
}

最新更新