滚动表格视图时隐藏文本字段数据

Posted

技术标签:

【中文标题】滚动表格视图时隐藏文本字段数据【英文标题】:Textfield data hide when scroll tableview 【发布时间】:2017-01-05 09:19:42 【问题描述】:

我正在开发 ios 应用程序。多个文本字段添加到 tableviewcell.when 在 texfield 上输入数据而不是滚动 tableview 文本字段数据隐藏。如何管理tableview上的文本字段。请帮助我并提前感谢

代码

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableViews
    // Return the number of sections.
    return 1;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    // Return the number of rows in the section.
    return 100;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    static NSString *MyIdentifier = @"cell";
    UITableViewCell *cell;
    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyIdentifier];

    
    UITextField *textFieldName = [[UITextField alloc]initWithFrame:CGRectMake(8.0f, 3.0f, 80.0f, 36.0f)];
    [cell addSubview:textFieldName];
    [textFieldName setDelegate:self];
    textFieldName.tag = indexPath.row+1;

    UILabel *line = [[UILabel alloc]initWithFrame:CGRectMake(96.0f, 0.0f, 1.0f, 50.0f)];
    line.backgroundColor = [UIColor colorWithRed:214.0/255.0 green:214.0/255.0 blue:214.0/255.0 alpha:1.0];
    [cell addSubview:line];

    [cell setSeparatorInset:UIEdgeInsetsZero];
    tableView.allowsSelection=NO;
    return cell;


-(void)textFieldDidEndEditing:(UITextField *)textField

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:([textField tag]-1) inSection:0];
    UITableViewCell *Cell = [_dairyTable cellForRowAtIndexPath:indexPath];


【问题讨论】:

一旦滚动,单元格再次重用。所以文本字段无法显示以前的数据。您需要在字符上存储文本字段文本应该范围委托方法并将其存储到数组中,因此您需要获取一次数据您再次滚动并将其分配给文本字段。 将您输入的文本字段保存在带有键 indexPath 行的临时字典中,将其设置为文本字段 ion reload 你画的 UI 设计不错。我喜欢。 (y) 【参考方案1】:

如何处理UITextFieldUITableView中的值:

    首先你必须创建一个可变数组,其计数等于UITextField的数量。

    cellForRow 中做cell.textField.tag = indexPath.row,这样您就可以识别每个UItextField

    将数组中的每个 UITextFieldvalue 保存在与每个字符更改相同的顺序中。因此,在UITextFieldtextdidChange 委托方法中编写代码,通过其标记将UITextfield 标识为textfield.tag

    每当用户输入或编辑文本时,您都会在数组中获得该文本。

    现在在cellForRow 添加以下行:

cell.textfiled.text = arrDataText[index.row]

【讨论】:

以上是关于滚动表格视图时隐藏文本字段数据的主要内容,如果未能解决你的问题,请参考以下文章

我设置滚动视图偏移以显示被键盘隐藏的文本字段。如果用户在显示键盘时滚动,则滚动视图会向下捕捉

如何使用视图顶部的工具栏滚动表格视图

如何在 UIView 中设置滚动视图以向上滑动被键盘隐藏的文本字段?

TextField 正在阻止 TableView 滚动

键盘隐藏另一个视图的文本字段动画

如何知道键盘何时隐藏文本字段?