使用出队的 dequeueReusableCell - 出队后单元格的 textField

Posted

技术标签:

【中文标题】使用出队的 dequeueReusableCell - 出队后单元格的 textField【英文标题】:Working with a dequeued, dequeueReusableCell - textField of cell when after being dequeued 【发布时间】:2020-11-01 18:56:38 【问题描述】:

我正在使用具有可变数量单元的 VC。每个单元格包含一种成分,以及数量的百分比。我在 textField 键盘上添加了一个 inputAccessoryView,它有一个 next 按钮,用于导航到下一行的 textField。

这一切都很好,但是当屏幕上没有加载单元格时我遇到了问题。

代码很简单:

func setNextResponder(for indexPath: IndexPath) 
    let index = IndexPath(row: indexPath.row + 1, section: 0)
    guard let nextCell = tableView.cellForRow(at: index) as? Cell
    else  return 
    nextCell.materialAmountTextField.becomeFirstResponder()

是否有强制 VC 加载该单元格的方法?最好不必滚动到该单元格。

【问题讨论】:

“最好不用滚动到那个单元格”……如果那个单元格不可见,数据输入会不会很混乱,不让他们看到他们正在输入的内容?在我看来,将其滚动到视图中将是正确的解决方案。我想知道您为什么不希望它可见。 嘿,罗伯,这是真的。如果我需要滚动,这不是世界末日。 【参考方案1】:

我继续打电话

DispatchQueue.main.async 
        self.tableView.scrollToRow(at: newIndexPath, at: .none, animated: true)
    

在将下一个单元格的 textField 设置为第一响应者之前。

【讨论】:

以上是关于使用出队的 dequeueReusableCell - 出队后单元格的 textField的主要内容,如果未能解决你的问题,请参考以下文章

原子出队的最简单方法?

出队的 UICollectionViewCell 未刷新

动态/可出队的 UITableviewcells 内的 UITextfield

如何防止出队的集合视图单元格相互重叠?

顺序队列总结

Java中队列