我的第一行写作 将自己复制到底线
当我滚动时, 数据的位置正在发生变化
答案 0 :(得分:0)
UITableView Cell中的数据被重复,因为Cell被重用,因此您需要跟踪单元格的数据,可能是您可以在索引排列的数组中添加数据。
答案 1 :(得分:0)
是的,这就是UITableview dequeCells的概念:因为它重用了单元格,所以如果有100个条目,一次只会创建有限数量的单元格以节省内存。 现在为了避免它,请使用包含所有值的数据源填充单元格视图。 如果您发现数据源中缺少某些值,请使用,例如:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! Tek101TableViewCell
cell.selectionStyle = .none
cell.siraLabel.text = ""
cell.siraLabel.text = String(indexPath.row + 1) + ")"
return cell
}
答案 2 :(得分:0)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! Tek101TableViewCell
cell.selectionStyle = .none
cell.siraLabel.text = String(indexPath.row + 1) + ")"
return cell
}
答案 3 :(得分:0)
您需要在textfield委托方法中设置值,如下所示:(根据您的需要)
如果您使用键盘上的返回按钮
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let cell = textField.superview?.superview as! Tek101TableViewCell // track you view hierarchy
cell. siraLabel?.text = textField.text
textField.resignFirstResponder()
return true
}
如果您想跟踪价值结束编辑方法
func textFieldDidEndEditing(_ textField: UITextField){
let cell = textField.superview?.superview as! Tek101TableViewCell // track you view hierarchy
cell. siraLabel?.text = textField.text
}
答案 4 :(得分:0)
在UITablview
单元格中重复使用,这样就会发生。要解决此问题,您必须将所有记录保存在一个全局数组变量中。
您可以在用户插入时将所有输入存储在数组或字典中。然后你必须将这个数组值赋给CellForRow
的每个单元格。
简而言之,你必须只处理数组。
希望这会对你有所帮助。