当我打开表视图时,它调用下面的函数,但为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;
}
答案 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;
}