初始点应用启动屏幕截图
添加新单元格时的第二个屏幕截图
添加第三个和第四个单元格后
第五次后会再次重新加载单元格
UITableviewcell包含文本字段。每个单元格文本字段应包含不同的数据。当用户输入时。
我的问题是当表视图加载第一个单元格(单个1)时。当我添加下一个单元格(独立2)并继续添加单元格(独立3,独立4)时,如屏幕截图所示。当我添加单元格(单独5)时,带有文本字段的单元格(单独5)重新加载(单独1)的单元格的相同数据。单独的5个文本字段的单元格应该为空。
但是当他们重新加载单元格时,我无法管理单元格并清除文本字段吗?
我是新手... 请帮助!!
预先感谢...
class ViewController:UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var addmore: UIButton!
var ar = ["Individual 1"]
@IBOutlet weak var tableview: UITableView!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return ar.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableview.dequeueReusableCell(withIdentifier: "cell") as! TableTVC
cell.indivuallbl.text! = ar[indexPath.row ]
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 240.5
}
@IBAction func deleterow(_ sender: Any) {
let point = (sender as AnyObject).convert(CGPoint.zero, to: tableview)
guard let indexPath = tableview.indexPathForRow(at: point) else {
return
}
ar.remove(at: indexPath.row)
print(ar.count)
}
override func viewDidLoad() {
super.viewDidLoad()
NSLog("a", 1)
addmore.layer.cornerRadius = 5
}
@IBAction func addmore(_ sender: Any) {
ar.insert("Individual \(ar.count + 1 )", at: ar.count)
print(ar.count)
let myIndexPath = IndexPath(row: ar.count-1 , section: 0)
tableview.insertRows(at: [myIndexPath], with: .bottom)
}
答案 0 :(得分:0)
TableView Cell重用本身。每次重用时,都会调用prepareForReuse方法。覆盖您的单元格的此方法。将值设置为nil。
请参阅此链接:-https://developer.apple.com/documentation/uikit/uitableviewcell/1623223-prepareforreuse
override func prepareForReuse() {
// Clean up all values
}