情况如下: 我有一个包含3行的tableView。在这个tableView中,有一个带有textField的tableVIewCell原型。此textField用于tableView的每一行(以不同方式)。 我的问题是:如何检查每个textField是否为空?我猜一个If语句,但我不明白如何分别检查所有textFields。有人可以帮帮我吗?
我的tableView的一个例子: http://imagizer.imageshack.us/a/img540/2130/UsUNO3.png
答案 0 :(得分:1)
过去我必须做这件事,这是我使用的方法:
for index in 0...(cellCount - 1) {
var indexpath = NSIndexPath(forRow: index, inSection: 0)
if let cellAtIndex = tableView.cellForRowAtIndexPath(indexpath) as? ContestantsTableViewCell {
var newContestantString = cellAtIndex.contestantNameField.text
if !newContestantString.isEmpty {
contestants.append(newContestantString)
}
}
}
我只是使用cellForRowAtIndexPath
在索引路径中获取单元格,并通过将其作为我的自定义类型来获取该单元格中的属性。
答案 1 :(得分:0)
如果您知道只会显示3个单元格,那么您可以保持对每个单元格和每个单元格textField的引用,并在需要时检查长度。
答案 2 :(得分:0)
可以使用indexpath.row(Tableview)
在每行中检查您的文本字段if(indexpath.row == 0){
if(cell.textfield.text == "")
{
//1st textfiled empty
}
}
else if(indexpath.row == 1){
if(cell.textfield.text == "")
{
//2nd textfiled empty
}
}
else if(indexpath.row == 2){
if(cell.textfield.text == "")
{
//3rd textfiled empty
}
}
答案 3 :(得分:0)
好的,您可以创建如下所示的函数。您可以对不使用if else
条件的任意数量的单元格使用此函数。您也可以将此功能用作textField验证。
func getCellsDataOn() -> Bool {
for section in 0 ..< self.tableView.numberOfSections {
for row in 0 ..< self.tableView.numberOfRows(inSection: section) {
let indexPath = NSIndexPath(row: row, section: section)
let cell = self.tableView.cellForRow(at: indexPath as IndexPath) as! YourCell
if (cell.txtField!.text! != "") {
print("Not Empty")
//Handle your function
}else {
print("Empty")
return false
}
}
}
return true
}
希望得到帮助,谢谢。