如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?

Posted

技术标签:

【中文标题】如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?【英文标题】:How to set Action for Buttons to every cell which will be created dynamically when user Enter a text (Swift 4)? 【发布时间】:2019-12-21 12:25:51 【问题描述】:

我正在创建一个具有集合视图的应用程序,并且集合视图单元格的项目将由用户动态添加。

我创建了一个集合视图并添加了代码,这些代码将允许用户通过 UIalert 操作控制器输入输入,并且该项目被添加到集合视图中。

问题是,这些项目不可点击,如何使其可点击,点击后它应该根据选择更新同一页面中的表格视图。

对不起,我对 ios 开发完全陌生。

【问题讨论】:

你能不能贴一些代码,那样会更清楚 处理单元格中按钮的操作,使用单元格的委托或块在 ViewController 中应用新添加的数据 在此处粘贴代码时出现格式错误。我创建了一个带有添加按钮的简单集合视图,用户可以在其中在文本字段中添加名称,并将使用追加将其添加到集合视图的末尾。我能够看到添加的新项目,但集合视图中的按钮不可点击。 @TraiNguyen - 有任何示例代码吗?请 @vijaybalaji 试试here 【参考方案1】:

首先在cell文件中添加按钮,在cellforrowAt中添加代码

    cell.button.tag = indexpath.row

然后使该按钮的点击事件

cell.button.addTarget(self, action: #selector (property(_:)), for: .touchUpInside)

点击时调用的函数

    func property(sender : UIbutton)
  //write code here and make sure to use specific indexpath use sender


【讨论】:

我在一个单独的文件中为集合视图单元创建了按钮。因此它无法识别我的视图控制器中的按钮。它还说错误“使用未解析的标识符'属性'”虽然我已经创建了一个在同一个文件中指定的同名函数。【参考方案2】:

有一个方法叫didSelectItemAtIndexPat(),参考这里的文档https://developer.apple.com/documentation/uikit/uicollectionviewdelegate/1618032-collectionview?language=swift,可以用来选择特定索引路径下的任意项。 您可以在此处编写代码以更改可点击的项目。

要更新 tableView,您需要使用委托将信息从 tableView 传递到 viewController。

【讨论】:

以上是关于如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?的主要内容,如果未能解决你的问题,请参考以下文章

如何为具有动态高度的表格单元格正确设置自动布局?

如何从动态创建的表格视图单元格的输入字段中将数据检索到数组

如何为 tableViewController 中的自定义单元格按钮创建手势识别器,以便能够识别它所在的单元格?

在 FirstVC 中选择单元格后,如何为 SecondVC 中的每个单元格调用按钮操作?

如何为自定义单元格中的动态附加输入字段添加约束

如何为 Xib 设置单元格动态高度的约束...?