我有一个表视图并使用自定义单元格。现在我在我的酒吧设置了一个清晰的按钮。现在单击该UIBarButton我想清除单元格中文本字段内的所有文本。我怎么能这样做.. ??
var DataSource = [NewAssessmentModel]()
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.DataSource.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let model = self.DataSource[indexPath.row]
switch(model.assessmentControlType)
{
case .text:
let cell = (tableView.dequeueReusableCellWithIdentifier("QuestionWithTextField", forIndexPath: indexPath) as? QuestionWithTextField)!
cell.model = model
cell.indexPath = indexPath
cell.txtAnswer.delegate = self
cell.lblQuestion.text = model.labelText
cell.indexPath = indexPath
return cell
}
}
现在单元格包含一个txtAnswer作为UITextField。如何清除txtAnswer的文本字段。
用于清除字段:
func clearView(sender:UIButton)
{
print("Clear Button clicked")
}
答案 0 :(得分:2)
以上代码仅适用于可见的单元格。如果手机中看不到单元格值,则不会将其清除。
为此,您需要遍历每个表视图单元格。我认为这个对你来说是个不错的选择之一。
func clearView(sender:UIButton)
{
print("Clear Button clicked")
for view: UIView in tableView.subviews {
for subview: Any in view.subviews {
if (subview is UITableViewCell) {
let cell = subview as? UITableViewCell
// do something with your cell
if let questioncell = cell as? QuestionWithTextField
{
questioncell.txtField.text = ""
}
// you can access any cells
}
}
}
}
答案 1 :(得分:1)
您可以获取tableView的所有可见单元格。
@IBAction func deleteText(_ sender: Any) {
for cell in tableView.visibleCells {
if let questionCell = cell as? QuestionWithTextField {
// Hide your label here.
// questionCell.lblQuestion.hidden = true
}
}
}