当我打开表格视图时,它调用了波纹管函数,但返回的单元格为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;
}