当我打开表格视图时,它调用了波纹管函数,但返回的单元格为nill。但是当我向下滚动时,它将调用该函数,并返回正确的值。提前致谢

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
        static NSString *CellIdentifier = @"Formal";
        UITableViewCell *cellt = [self.gridtable dequeueReusableCellWithIdentifier:CellIdentifier];

        if(labelArray.count==0)
            indexPath=0;
        else
            cellt.textLabel.text= [labelArray objectAtIndex:indexPath.row];//CellIdentifier;//[labelArray objectAtIndex:2];


        if (cellt == nil) {
            cellt = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
return cellt;
}

最佳答案

对于一个,您应该在设置textLabel之前先执行if (cellt == nil)。因为现在您正在设置文本,然后初始化单元格,然后删除该文本,因为您的单元格根本不存在。

这是正确的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"Formal";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.textLabel.text = [labelArray objectAtIndex:indexPath.row];

    return cell;
}

07-27 22:20