如何引用cellForRowAtIndexPath之外的单元格

时间:2017-06-05 07:33:50

标签: ios swift xcode uitableview

我正在尝试更新

之外的单元格中的标签
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未更新。

7 个答案:

答案 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)

第1步:

更新模型的数据

步骤2:

重新加载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)

斯威夫特 5.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 ..
     
} 

注意:

您只能获得可见的单元格引用