swift - UICollectionViewCell 内的文本字段重用文本

标签 swift swift2 cell textfield uicollectionviewcell

任何人都可以提供有关在 UiCollectionView 中使用文本字段的帮助吗?我想要完成的是一个 Collection View ,其中包含供用户发布的图像。对于这些图像,我想让他们有机会为每张图像添加标题。我遇到的问题,我确信其他人也遇到的问题是这样的;一旦用户在文本字段中键入内容,输入内容稍后会自动填充文本字段。

示例:5 个带有文本字段的图像。

图像 1 的标题用户输入“hello”

图像 2 的标题用户输入“there”

图像 3 的标题用户输入“how are you”

用户在图像 4 的文本字段中输入任何内容之前,它会显示“Hello”

我发现堆栈上的一篇帖子很有用,但我仍然不明白我应该做什么。我按照建议的步骤进行操作; 1.创建一个数组来保存 TextView 输入 2. 在“textFieldDidEndEditing”方法中,如果数组不为空,则将当前文本字段输入添加到数组中。 我感到困惑的是步骤 3,@bhanu 建议“文本字段值应该从数组中输入,并且不会放错值。”

最佳答案

如果您成功存储了文本字段输入的数组,那么您实际上已经成功了一半。但是仍然缺少一些逻辑来确保您的文本字段显示正确的值而不是回收的文本。您还必须存储它们的 NSIndexPath 。否则,您如何知道文本字段输入属于哪个单元格?

var textInputs = [String]()
var textFieldIndexPath = [NSIndexPath]()

func textFieldDidEndEditing(textField: UITextField) {

// store the textfield.text into "textInput" array
// you might need to find a way to store NSIndexPath of the selected cell // into "textFieldIndexPath" array here. From the textField instance, you should be able to trace the NSIndexPath of the cell it belongs to 

}

然后,在cellForItemAtIndexPath中:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollViewCellIdentifier", forIndexPath: indexPath) as! UICollectionViewCell

 if textFieldIndexPath.contains(indexPath){
  cell.textField.text = textInput[indexPath.row]
 }
}

请记住,我所写的只是如何解决您的问题的粗略指南。最终,您应该完善这组代码,因为它很严格并且可能容易出现错误/漏洞。但我确实希望它能给您一些如何解决这个问题的想法。

我建议使用一个元组数组,而不是维护两个数组,以提供更大的灵 active 。

关于swift - UICollectionViewCell 内的文本字段重用文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657705/

相关文章:

Swift:两个 CAAnimation 禁用之间的区别

ios - 下载 JSON 数据后如何重新加载 tableview 的数据

swift - 如何使 didSelectRowAt IndexPath 与自定义委托(delegate)一起工作

ios - 保存到用户照片库静默失败

ios - 为什么 NSNumberFormatterStyle.CurrencyStyle 在 iOS 模拟器的英国 Mac 上默认为美国?

c# - 通过单击 c#(winform) 更改 datagridview 单元格颜色

ios - Array.contains 返回 false

swift2 - 不能在 Swift 2 中使用方法 "contains"

ios - 如何在 TableView 单元格之间进行分隔

c++ - 来自 C++ 的 Excel 2010 自动化