也许我的问题非常简单,而且我太愚蠢了。 我的问题是我想访问
之外的indexPathoveride func tableView(...)
所以我在我的TableView类中,并且有一个单独的类,如:
func setColor()
{
...
}
在这个类中,我想访问indexPath。我怎么能这样做?
答案 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]
}
}