我正在尝试更新
之外的单元格中的标签override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
使用
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! Cell
在另一个功能中。但是,我一直在收到错误。因此,我尝试使用let cell = Cell()
来引用该单元格,但我收到错误unexpectedly found nil
。最后,我试过
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! Cell
不会返回错误,但标签cell.time.text
未更新。
答案 0 :(得分:16)
Swift 3.0 & Swift 4
let indexPath = IndexPath(row: 0, section: 0)
let cell = tableView.cellForRow(at: indexPath)
Swift 2.3
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
let cell = tableView.cellForRowAtIndexPath(indexPath)
注意: - 借助上述方法,您只能获得tableView
的可见单元格,但单元格为零
答案 1 :(得分:3)
如果您想使用stats.likes
覆盖方法UITableView
之外的单元格,那么首先,您需要获取行的cellForRowAt indexPath
,然后使用indexPath
在该行中,您可以获得indexPath
的单元格。
一旦你获得了单元格,那么你可以访问他们的属性& UITableView
之外的方法。
试试这个:
在此代码中,我使用自定义单元格。
UITableView
答案 2 :(得分:1)
更新模型的数据
重新加载indexPath
let indexPathToRefresh = IndexPath(row: 0, section: 0)
tableView.reloadRows(at: [indexPathToRefresh], with: .none)
答案 3 :(得分:0)
请勿在{{1}}方法之外使用dequeueReusableCellWithIdentifier
。
你应该使用cellForRowAtIndexPath
https://developer.apple.com/reference/uikit/uitableview/1614983-cellforrow
答案 4 :(得分:0)
使用此:
String[] Cols = (String[])context.SrcCols;
如果您的单元格具有
等属性tableView.cellForRow(at: IndexPath(row: row, section: section)) as! CustomCell
你可以用这个:
@IBOutlet label: UILabel!
希望有所帮助
答案 5 :(得分:0)
您不应该在目标内使用 touchUp。在快速滚动和按下按钮时,您可能会遇到问题。您按下一个行按钮,但是当您松开另一个行按钮的手指时,就会释放该操作。您也可能会遇到内存泄漏。如果添加目标,则必须稍后将其删除!如果要添加目标,最好使用 TouchDown 事件来避免此类问题。我个人使用tapGestures。然后,当视图消失时,我找到了具有 tapGesture 的单元格,并因内存泄漏问题将其删除。
答案 6 :(得分:-1)
在 cellForRowAtIndexPath
之外获取自定义单元格引用的安全方法:
这是代码:
let indexPath = IndexPath(row: 5, section: 0)
if let cell = self.yourTableView.cellForRow(at: indexPath) as? customCell {
// Get all custom cell property refrence
// Do what ever you want ..
}
您只能获得可见的单元格引用