【发布时间】:2016-08-24 11:22:32
【问题描述】:
好的,我将尽可能简单地分解它。我在 ViewController 中有一个 tableView。我有两个用于表格的原型单元格。我多次重复使用单元格来填充表格。
在其中一个单元格中,我已将手势识别器添加到label,通过它我使textField 在标签位置可见并隐藏label。现在,当我使用完textField 并按回车键后,我希望标签文本更改为我在textField 中输入的内容。所以我在viewController 中实现了UITextFieldDelegate 协议。我还为单元格中的每个 textField 添加了标签,以便我知道 textField 返回的内容以及 textField 所在的行。
基本上,我想知道的是,如果我已经知道 indexPath.row,是否有任何方法可以获取 indexPath?
对于手势识别器,我可以通过从点击位置获取 indexPath 来解决这个问题:
func genderTapped(sender: UITapGestureRecognizer) {
let tapLocation = sender.locationInView(self.profileInfoTable)
let indexPath = self.profileInfoTable.indexPathForRowAtPoint(tapLocation)
let cell = self.profileInfoTable.cellForRowAtIndexPath(indexPath!) as! editUserDataCell
cell.savedUserInput.hidden = true
cell.userDetailTextfield.becomeFirstResponder()
cell.userDetailTextfield.hidden = false
cell.userDetailTextfield.text = cell.savedUserInput.text!
}
我需要indexPath 以便我可以引用单元格中包含的元素。任何人都可以提供任何见解吗?有没有人尝试过类似的方法?有什么方法可以只使用行来访问单元格吗?
【问题讨论】:
-
如何设置
tag to each of the textFields? -
要访问 UITableView 行,您总是需要一个部分的索引和该部分中的行的索引。因此,如果您也知道需要访问的部分,它可以有一个简单的答案。如果你的tableView只有一个部分,它的索引当然是0。
-
@pkc456 我在 cellForRowAtIndexPath 函数中设置了标签
-
@pedrouan 我只维护一个部分
-
我的建议是将标签更改为按钮,并为其添加目标以隐藏或显示文本字段。然后将
UITextFieldDelegate设置为您的单元格。如果您想与 tableView 交流您的单元格。将控制器的弱引用添加到单元类或使用闭包是不错的选择。
标签: ios swift uitableview nsindexpath