启用 UITableView 的编辑模式时,我需要启用编辑文本字段。
它工作正常:
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) ->
Bool {
if (self.tableView.editing)
{
let cell = tableView.cellForRowAtIndexPath(indexPath) as TestTableViewCell
cell.testTextField.enabled=true
cell.showsReorderControl = true
return true
}
else{
return false
}
}
当编辑模式关闭时,文本字段钢可编辑。我将代码添加到 else 以修复它:
else{
let cell2 = self.tableView.cellForRowAtIndexPath(indexPath) as TestTableViewCell
cell2.testTextField.enabled=false
return false
}
但是我在这一行收到错误“致命错误:在解开可选值时意外发现 nil”
let cell2 = self.tableView.cellForRowAtIndexPath(indexPath) as TestTableViewCell
最佳答案
根据Xcode给出的错误,您需要检查数据类型。
else{
let cell2 = self.tableView.cellForRowAtIndexPath(indexPath) as? TestTableViewCell
cell2?.testTextField.enabled=false
return false
}
添加 '?'在 'as' 之后将进行条件检查,并添加另一个 '?'仅当属性不为零时才设置属性。
这是使用 Optional 值编程时非常常见的问题。希望这能有所帮助。
关于ios - 无法通过 cellForRowAtIndexPath 获取单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28106998/