请耐心等待,因为这是一个难以描述的问题。我有两个UICollectionViews
:MainCollectionView
和NestedCollectionView
。 MainCollectionViewCell
包含UILabel
和NestedCollectionView
。反过来,NestedCollectionViewCell
包含UILabel
或UITextfield
。是否显示UILabel
或UITextfield
取决于NestedCollectionViewCell
的内容。
我的问题如下:当用户选择NestedCollectionViewCell
并且内容设置为显示UITextfield
时,会显示用于用户输入的键盘。这是预期的。
但是,当用户输入一些文本然后滚动到MainCollectionView
中的另一个单元格时,NestedCollectionView
将重置,UITextfield.text
将设置为默认值。换句话说,不保留输入的文本。
我有什么建议可以解决这个问题吗?
答案 0 :(得分:0)
UITextField
中输入的文字丢失,因为无论何时滚动UITableView
,它都会自动销毁不再可见的单元格,这也需要更好的内存管理,否则您的应用会消耗更多记忆。因此,当您返回上一个单元格时,您新生成了UITalbeViewCell
。所以你的数据会丢失,因为你没有坚持下去。
作为解决方案,只要您textFieldDidEndEditing
调用或解除键盘,将UITextField
值存储到某个对象中,并在cellForRowAtIndexPath
方法中检查对象是否有值,然后将其填入你的UITextField
。
通过这种方式,您始终可以保留先前输入的值。