获取任何tableView函数

时间:2015-10-20 20:55:37

标签: ios swift tableview nsindexpath

也许我的问题非常简单,而且我太愚蠢了。 我的问题是我想访问

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

所以我在我的TableView类中,并且有一个单独的类,如:

func setColor()
{
...
}

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

1 个答案:

答案 0 :(得分:1)

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

因此您将无法从外部访问此对象。如果你想改变一些细胞,例如backgroundColor应该将颜色存储在属性中,更改此属性并强制重绘。在委托方法中,创建单元格使用此属性来设置颜色。

以下是一些示例代码。

<强>的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]
    }
}