UICollectionView不保留UITextfield输入

时间:2018-05-18 02:01:33

标签: ios swift uicollectionview uitextfield uicollectionviewcell

请耐心等待,因为这是一个难以描述的问题。我有两个UICollectionViewsMainCollectionViewNestedCollectionViewMainCollectionViewCell包含UILabelNestedCollectionView。反过来,NestedCollectionViewCell包含UILabelUITextfield。是否显示UILabelUITextfield取决于NestedCollectionViewCell的内容。

我的问题如下:当用户选择NestedCollectionViewCell并且内容设置为显示UITextfield时,会显示用于用户输入的键盘。这是预期的。

但是,当用户输入一些文本然后滚动到MainCollectionView中的另一个单元格时,NestedCollectionView将重置,UITextfield.text将设置为默认值。换句话说,不保留输入的文本。

我有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

UITextField中输入的文字丢失,因为无论何时滚动UITableView,它都会自动销毁不再可见的单元格,这也需要更好的内存管理,否则您的应用会消耗更多记忆。因此,当您返回上一个单元格时,您新生成了UITalbeViewCell。所以你的数据会丢失,因为你没有坚持下去。

作为解决方案,只要您textFieldDidEndEditing调用或解除键盘,将UITextField值存储到某个对象中,并在cellForRowAtIndexPath方法中检查对象是否有值,然后将其填入你的UITextField

通过这种方式,您始终可以保留先前输入的值。