文本字段标签和表格视图

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 中创建对这些文本字段的全局引用(在您的视图控制器内)。这样您就可以随时访问您的文本字段,而无需处理单元格。

【讨论】:

那么我应该创建多个具有不同标识符的单元格吗? 声明在这种情况下不应重复使用单元格是不好的建议。

以上是关于文本字段标签和表格视图的主要内容,如果未能解决你的问题,请参考以下文章

如何固定表格视图中自定义单元格文本字段的标签值?

如何在表格视图 IOS 内的滚动视图中创建文本字段

如何在表格视图单元格(每一行)中添加文本字段并为每个文本字段设置标签以访问它的文本

滚动表格视图时文本字段为空

如何使用文本字段处理表格视图单元格

移动表格视图位置和隐藏视图