UICollectionViewCell内的文本字段重用文本

时间:2016-04-15 22:16:10

标签: swift swift2 cell textfield uicollectionviewcell

任何人都可以在UiCollectionView中使用文本字段提供帮助。我想要完成的是一个集合视图,用于保存用户发布的图像。有了这些图像,我想给他们一个标题每个图像的机会。我所拥有的问题,我确定的其他问题就是这个问题;一旦用户键入文本字段,输入将在以后自动填充文本字段。

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

图片1的标题用户类型"你好"

图片2的标题用户类型"有"

图片3的字幕用户类型"你好吗"

在用户在图像4的文本字段中键入任何内容之前,它将显示为" Hello"

我发现堆叠上的一个帖子是有益的,但我仍然不理解我想要做的事情。我按照建议的步骤; 1.创建一个数组来保存文本视图输入 2.在" textFieldDidEndEditing"如果方法不为空,则将当前文本字段输入添加到数组中。 我感到困惑的是第3步,@ bhanu建议"文本字段值应该从数组中输入并且它不会错位。"

1 个答案:

答案 0 :(得分:0)

如果您设法存储了文本字段输入数组,那么实际上就在那里。但是仍然存在一些逻辑缺失,以确保您的文本字段显示正确的值而不是回收的文本。您还必须存储他们的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]
 }
}

请记住,我所写的内容只是如何解决问题的粗略准则。最终,您应该优化这组代码,因为它很严格,可能容易出现漏洞/漏洞。但是我希望它能让你对如何解决这个问题有所了解。

我建议使用Tuples数组,而不是维护两个数组,以提供更大的灵活性。