自定义tableviewcell中的文本字段在滚动时离开单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义tableviewcell中的文本字段在滚动时离开单元格相关的知识,希望对你有一定的参考价值。

我正在开发一个应用程序,我在XIB中使用带有自定义uitableviewcell的UITableview。

我的问题是,我已经通过xib将textfield放在tableviewcell上。我正在我的viewcontroller类中访问此自定义单元格,该类具有tableview。下面是我的cellForRowAtIndexPath:方法的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *STI=@"STII";
    AnalysedScreenCell *cell = (AnalysedScreenCell *)[tableView dequeueReusableCellWithIdentifier:STI];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"AnalysedScreenCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
        cell.accessoryType=UITableViewCellAccessoryNone;
    }

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    cell.txtDetails.delegate=self;
    cell.txtDetails.text = [countArray objectAtIndex:indexPath.row];
    [cell.txtDetails setTag:1];
    [cell.txtDetails addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];

    cell.txtName.delegate=self;
    cell.txtName.text = [nameArray objectAtIndex:indexPath.row];
    [cell.txtName setTag:2];
    [cell.txtName addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];

    cell.txtDate.delegate=self;
    cell.txtDate.text = [dateArray objectAtIndex:indexPath.row];
    [cell.txtDate setTag:3];
    [cell.txtDate addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
return cell;
}

但是当我尝试滚动tableview时,表视图中的文本字段进入另一个单元格。我也尝试为它设置一个可重用的标识符,但它不起作用。

这是我的问题的形象

Tableview when scrolled

答案

在您的类>中添加此委托方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 100; // change as per your needs

}
另一答案

@KKRocks所说的完美无缺......

另一个选项是在tableview的属性中设置如下:

enter image description here

另一答案

问题可能是

您已将表视图单元格的高度设置得较小,因此textField高度不适合它。

因此,请提供表格视图单元格的高度,使其包含textField的高度。

例如 :

假设你的textField高度为40,你的上下边距分别为10和10。

因此,提供高度为60或超过60。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 60; 
}

以上是关于自定义tableviewcell中的文本字段在滚动时离开单元格的主要内容,如果未能解决你的问题,请参考以下文章

滚动表格视图时,文本字段文本在其他文本字段上留下印象

如何从另一种方法访问 tableviewCell 中的文本字段

自定义表格视图单元格中的可编辑文本字段

滚动时自定义 UITableViewCell 中的 UITextFields 文本出现在其他单元格中

自定义 TableViewCell 中忽略自动布局

自定义 tableViewCell 滚动时显示不正确