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

Textfields in custom tableviewcell goes out of cell while scrolling

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

我的问题是,我通过 xib 将文本字段放在 tableviewcell 上。我在我的 viewcontroller class 中访问这个自定义单元格,它有一个 table 视图。下面是我的 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;
}

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

这是我的问题的图片

在您的 class >

中添加此委托方法
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 100; // change as per your needs

}

问题可能是

您已将 table 视图单元格的高度设置得较小,因此文本字段的高度不适合它。

因此请提供 table 视图单元格的高度,以便它包含文本字段的高度。

例如:

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

所以请提供60或60以上的身高。

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

@KKRocks 所说的非常有效...

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