任何人都可以在UiCollectionView中使用文本字段提供帮助。我想要完成的是一个集合视图,用于保存用户发布的图像。有了这些图像,我想给他们一个标题每个图像的机会。我所拥有的问题,我确定的其他问题就是这个问题;一旦用户键入文本字段,输入将在以后自动填充文本字段。
示例:5个带有文本字段的图像。
图片1的标题用户类型"你好"
图片2的标题用户类型"有"
图片3的字幕用户类型"你好吗"
在用户在图像4的文本字段中键入任何内容之前,它将显示为" Hello"
我发现堆叠上的一个帖子是有益的,但我仍然不理解我想要做的事情。我按照建议的步骤; 1.创建一个数组来保存文本视图输入 2.在" textFieldDidEndEditing"如果方法不为空,则将当前文本字段输入添加到数组中。 我感到困惑的是第3步,@ bhanu建议"文本字段值应该从数组中输入并且它不会错位。"
答案 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
数组,而不是维护两个数组,以提供更大的灵活性。