输入框在tableview上 滑动输入框上的字消失的问题
当有很多行输入框在tableview上超出了手机的屏幕的时候,上面原来有的字消失,数据没有保存。 当你划出屏幕的时候,是cell被替换(不是释放)了,然后又重新构建了一个textField,已经不是以前的那个,所以肯定是空的。不过这里倒是有个好玩的,就是 如果你正在编辑某个textField,你把它划出屏幕,这个textfield所在的cell是不会释放的,内容也还在,不过这点倒是对整体没有帮助
这个与重用没有什么关系的,在不使用重用机制的情况下,当你划出屏幕外时cell也会被释放,在不使用重用的机制的情况下可以使用__weak来修饰UITableViewCell指针 成员变量,然后在tableViewCell构建的时候,让它指向某个cell,然后在cell构建之前输入它
__weak UITableViewCell* _testCell;
if
(indexPath.row ==
1
) {
NSLog(@
"_testCell >>> %@"
,_testCell);
if
(_testCell != nil) {
//如果不为空就直接返回这个cell
return
_testCell;
}
}
但是这种办法只能保存indexPath.row == 1的情况下才能保存
可以使用一个字典保存我们输入的数据,根据indexpath.row的来决定字典的key,然后在一一取出,这样就可以了,但是有点麻烦。
textfield.tag = row;
保存
[dicc setObject:field.text forKey:[NSString stringWithFormat:@"%ld",field.tag]];