UITableViewCell 滚动后数据变化
UITableViewCell Data changes after scrolling
我正在 UITableViewCell 中创建一个表单,这个表单在原型单元格中有标签和文本字段。在这里查看它的图像
TableView Story board Image。
我正在使用标识符动态创建表单,我的代码是
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("protocell", forIndexPath: indexPath) as! UITableViewCell
var lable = cell.viewWithTag(1) as! UILabel
lable.text = details[indexPath.row]
lable.textColor = UIColor.brownColor().colorWithAlphaComponent(0.7)
var textfield = cell.viewWithTag(2) as! UITextField
textfield.placeholder = "Enter \(details[indexPath.row])"
self.arrayTextField.append(textfield)
if details[indexPath.row] == "Name" {
textfield.placeholder = "Enter First \(details[indexPath.row]) Middle \(details[indexPath.row]) Last \(details[indexPath.row]) "
}
textfield.backgroundColor = UIColor.redColor().colorWithAlphaComponent(0.2)
return cell
}
现在的问题是我有 18 个字段,当我在字段中输入值并滚动视图以填充剩余字段时,字段中的值发生变化。
请帮忙
创建 UITableViewCell
子类并覆盖 prepeareForReuse
函数 - 将单元格转换为默认模式。
Swift:
override func prepareForReuse() {
super.prepareForReuse()
//set cell to initial state here, reset or set values, etc.
}
根据您的评论 - 如何继承 UITableViewCell
:
import UIKit
class MyCustomCell: UITableViewCell {
// things that you can do here:
// initialise your properties here. (label, textfield. etc)
// layout subviews.
// override superclass APIs.
}
- 不要将文本字段存储在数组中,而是数据源 "details" 数组应该这样做。
- 在文本字段中输入任何内容后,更新您的 "details" 索引路径数组。
- 子类化 UITableViewCell 并制作一个 CustomTableViewCell 并为您提供 IBOutlets 文本字段标签以及不让您的生活更轻松的东西
- 在你的 CustomTablewViewCell 上有一个像
updateWithDetails(details)
这样的方法,这样代码就很好地封装了
我正在 UITableViewCell 中创建一个表单,这个表单在原型单元格中有标签和文本字段。在这里查看它的图像 TableView Story board Image。 我正在使用标识符动态创建表单,我的代码是
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("protocell", forIndexPath: indexPath) as! UITableViewCell
var lable = cell.viewWithTag(1) as! UILabel
lable.text = details[indexPath.row]
lable.textColor = UIColor.brownColor().colorWithAlphaComponent(0.7)
var textfield = cell.viewWithTag(2) as! UITextField
textfield.placeholder = "Enter \(details[indexPath.row])"
self.arrayTextField.append(textfield)
if details[indexPath.row] == "Name" {
textfield.placeholder = "Enter First \(details[indexPath.row]) Middle \(details[indexPath.row]) Last \(details[indexPath.row]) "
}
textfield.backgroundColor = UIColor.redColor().colorWithAlphaComponent(0.2)
return cell
}
现在的问题是我有 18 个字段,当我在字段中输入值并滚动视图以填充剩余字段时,字段中的值发生变化。 请帮忙
创建 UITableViewCell
子类并覆盖 prepeareForReuse
函数 - 将单元格转换为默认模式。
Swift:
override func prepareForReuse() {
super.prepareForReuse()
//set cell to initial state here, reset or set values, etc.
}
根据您的评论 - 如何继承 UITableViewCell
:
import UIKit
class MyCustomCell: UITableViewCell {
// things that you can do here:
// initialise your properties here. (label, textfield. etc)
// layout subviews.
// override superclass APIs.
}
- 不要将文本字段存储在数组中,而是数据源 "details" 数组应该这样做。
- 在文本字段中输入任何内容后,更新您的 "details" 索引路径数组。
- 子类化 UITableViewCell 并制作一个 CustomTableViewCell 并为您提供 IBOutlets 文本字段标签以及不让您的生活更轻松的东西
- 在你的 CustomTablewViewCell 上有一个像
updateWithDetails(details)
这样的方法,这样代码就很好地封装了