UITableView仅在向下滚动时加载项目

时间:2014-04-23 19:43:30

标签: ios uitableview nsmutablearray

当我打开表视图时,它调用下面的函数,但为Cell返回null。但是当我向下滚动它调用函数,并返回正确的值。在此先感谢

- (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;
}

1 个答案:

答案 0 :(得分:1)

对于你应该在设置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;
}