我有这个代码为我的UITableView创建单元格并在每个单元格中放置一个textField。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.myTableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
UITextField *myTextField = [[UITextField alloc]
initWithFrame:CGRectMake(215, (cell.contentView.bounds.size.height-30)/2, 60, 30)];
[myTextField setDelegate: self];
myTextField.tag = indexPath.section;
NSLog(@"%ld", (long)myTextField.tag);
myTextField.placeholder = @"0%";
myTextField.borderStyle = UITextBorderStyleRoundedRect;
[cell addSubview:myTextField];
cell.textLabel.text = self.cellLabels[indexPath.section];
return cell;
}
从数组中检索单元格标签,因此即使用户滚动表格视图时单元格标签保持不变,但我发现当滚动表格视图并且单元格不在视图中时,它返回其文本时清除并替换为占位符文本。考虑到文本域文本基于用户输入这一事实,我该如何解决这个问题,以便在返回到屏幕时重新创建文本字段时保留输入。
更多详细信息:在应用程序中,在上一页中,用户选择他们想要显示的项目数和每个项目的名称(cellLabel)。例如2个苹果和2个橙子。每个项目都是tableView中的一个部分,因此当调用代码时,您会在前两个单元格中获得一个包含“apples”的列表,在接下来的两个单元格中将获得“oranges”。所有4个单元格旁边都有一个文本字段。
答案 0 :(得分:0)
两种方式:
当用户在文本字段中键入内容时,您会记住他们键入的内容(可能是您将字符串放入数组或其他内容) - 研究如何单独更改文本。然后,在cellForRowAtIndexPath中,从数组中获取文本或其他内容,并将其放入文本字段中。
如果你只有一些单元格,那么你可以先创建它们,把它们放在某处(比如一个数组),然后在cellForRowAtIndexPath中找到正确的单元格。