也许我的问题很简单,我只是太笨了,没有理解它。我的问题是,我想访问
之外的indexPathoveride 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]
}
}