Nic*_*ard 6 iphone iso uitableview
我的UITableView中有5个单元格。每个都有一个UITextField作为子视图,用户将在其中输入数据。如果我确实使用单元格重用,则将单元格滚动到视图之外时,将清除文本字段。我不想处理这个。有没有一种方法可以不重用单元格,这样我就不会遇到这个问题,如果可以,怎么办?
这是一个坏主意吗?
我的一个应用程序具有相同的功能,我使用下面的代码来实现这一目标,但我从未遇到过此类问题。
首先,您需要将所有文本字段值临时存储在数组中。像这样制作数组。
arrTemp=[[NSMutableArray alloc]initWithObjects:[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],
[NSString stringWithFormat:@""],nil];
Run Code Online (Sandbox Code Playgroud)
然后给所有textField tag = indexPath.row;
之后,您需要在以下两种方法中替换 textField 值。
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[arrTemp replaceObjectAtIndex:textField.tag withObject:textField.text];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
[arrTemp replaceObjectAtIndex:textField.tag withObject:textField.text];
}
Run Code Online (Sandbox Code Playgroud)
最后您需要在 cellForRowAtIndexPath 数据源方法中设置该值。这样,每当用户滚动表视图时,它就会设置临时数组中的先前值。像这样。
cell.txtEntry.text = [arrTemp objectAtIndex:indexPath.row];
Run Code Online (Sandbox Code Playgroud)
我可能忘记了一些要粘贴到此处的代码。因此,如果您有任何问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
3436 次 |
| 最近记录: |