ios - 在表格视图单元格之间移动的文本
问题描述
我有一个表格视图,其中包含多个部分和每个部分中不同的行数。
我创建了一个自定义表格视图单元格。该单元格有一个标签和一个文本字段。
相同的自定义单元格用于表格视图中的每个单元格。
当我在文本字段中输入一个值时,它会出现在其他一些文本字段以及其他行中。有时文本会从我输入的文本字段中消失,并出现在下面的行中。当我上下滚动表格视图时会发生这种情况。
这是我用于 cellForRowAt 的代码
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelTextFieldTableViewCell", for: indexPath) as! LabelTextFieldTableViewCell
for i in approachSection {
if Int(i.row) == indexPath.row {
cell.myLabel.text = i.name
cell.myTextField.placeholder = cell.setPlaceholder(type: i.type!)
if i.type != CustomFieldType.text.rawValue {
cell.isInteger = true
}
}
}
return cell
自定义单元格是
class LabelTextFieldTableViewCell: UITableViewCell, UITextFieldDelegate {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myTextField: UITextField!
var isInteger: Bool?
var type: String!
override func awakeFromNib() {
super.awakeFromNib()
myTextField.delegate = self
myTextField.textAlignment = .right
myTextField.borderStyle = .none
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func setPlaceholder(type: String) -> String {
switch type {
case CustomFieldType.count.rawValue:
return "#"
case CustomFieldType.time.rawValue:
return "Time as 1234"
case CustomFieldType.text.rawValue:
return "Enter Text"
default:
return ""
}
}
func textFieldDidBeginEditing(_ textField: UITextField) {
textField.textColor = .black
}
func textFieldDidEndEditing(_ textField: UITextField) {
guard textField.text != "" else { return }
if isInteger != nil {
guard checkIfIntegers(str: textField.text!) != false else {
print("Not all Integers")
textField.textColor = .red
return
}
}
}
}
解决方案
在您的单元子类中使用 prepareToReuse 方法。在这里,您应该将所有值重置为默认值,并在相应的 cellForRowAtIndexPath 方法中将适当的值设置为单元格。
func prepareForReuse()
在你的课堂上写这个方法LabelTextFieldTableViewCell
我希望它会帮助你快乐编码=)
推荐阅读
- android - 如何在 Jetpack Compose 的 Javascript 中实现 `onMouseUp`、`onMouseEnter` 和 `onMouseDown` 的类似行为?
- c - 是否可以将 MSVC 配置为在遇到未声明的函数时引发编译器错误?
- python - 将图像从 AWS 存储桶媒体文件夹加载到 HTML pdf 模板
- javascript - 使用 React-Select 中的 AsyncSelect 的 React Hook 表单
- r - 使用基本图形的点图
- docker-compose - Docker-compose:如何在一个 .env 中公开端口,并在另一个中隐藏?
- python - 如何打印连续条件的结果,使它们彼此跟随而不按值排序?
- javascript - Mongoose 创建 __v 字段而不是日期字段
- ios - iOS WidgetKit 无法加载某些图像
- node.js - node.js 脚本的分段错误