文本字段标签和表格视图
Posted
技术标签:
【中文标题】文本字段标签和表格视图【英文标题】:Textfield Tags and Tableviews 【发布时间】:2016-11-29 03:01:46 【问题描述】:我在我正在开发的当前应用程序上为“编辑配置文件”视图控制器设置了一个自定义表格视图单元格。自定义单元格有一个标签(用于类别)和一个用于输入的文本字段。例如: “姓名(标签)John Doe(输入)” 我使用一个数组作为标签标题,另一个作为文本字段中的占位符。我想要做的是访问每个单独的文本字段,以便我可以设置初始文本(用户存储到服务器的信息)。如何访问特定的文本字段?我的客人是我必须基于特定的 indexPath,但我不太确定。有没有办法可以通过编程设置每个文本字段标签,以便我可以轻松访问它们?
【问题讨论】:
【参考方案1】:你应该试试这个:
首先为该特定单元创建一个子类。
放置一个文本字段并添加委托
in numberofrows 函数:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 4//return whatever you want
在 cellForRowAtIndexPath 函数中:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! customCell
cell.textfld.tag = indexPath.row//this is the textfield in cell
cell.textfld.delegate = self
cell.selectionStyle = UITableViewCellSelectionStyle.Gray
return cell
textFieldDidBeginEditing 函数:
func textFieldDidBeginEditing(textField: UITextField)
//delegate method
print(textField.tag)//here you will get particular textfield tag.
希望它对你有用......
【讨论】:
【参考方案2】:您不会访问每个文本字段。单元格将被重用,这意味着标签和文本字段将被重用。所有数据都属于您的数据模型。然后在您的 cellForRowAt
方法中,您转到您的数据模型并获取该单元格的数据并填充该单元格。
您的视图控制器也应该是每个单元格文本字段的代表。每当更新文本字段时,您都会使用新文本更新数据模型。
这样做可确保您的数据模型始终是最新的,并且始终包含所有行的所有数据。不要使用您的单元格来保存数据。仅用于显示数据。
在每个文本字段上使用标签来对应其当前行是可行的,但前提是表格行不能被更改(重新排序、删除和仅添加到当前行的末尾)。
【讨论】:
【参考方案3】:假设您没有重用单元格(在这种情况下您不应该这样做),您可以轻松地在 cellForRow:atIndexPath
中创建对这些文本字段的全局引用(在您的视图控制器内)。这样您就可以随时访问您的文本字段,而无需处理单元格。
【讨论】:
那么我应该创建多个具有不同标识符的单元格吗? 声明在这种情况下不应重复使用单元格是不好的建议。以上是关于文本字段标签和表格视图的主要内容,如果未能解决你的问题,请参考以下文章