IOS:为什么我的tableview的第一行是空白的?

时间:2014-09-01 14:41:13

标签: ios

我在TableViewCell中定义了一些标签,并让我的程序将NSDictionary中的信息读入单元格。但当我运行它时,我的tableview的第一行是空白的,其余的行是'显示正常。 我尝试使用NSLog来捕获传递给单元格的内容,答案与NSDictionary中的内容相同。 哪里可能错了?

这是我的代码的一部分:

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

     TakeAwayCell *cell = [tableView dequeueReusableCellWithIdentifier: TableSampleIdentifier];

     if (!cell)
     {
         cell = [ [TakeAwayCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableSampleIdentifier];   //'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'error without this line

         UINib *nib = [UINib nibWithNibName:@"TakeAwayCell" bundle:nil];
         [tableView registerNib:nib forCellReuseIdentifier:TableSampleIdentifier];
     }

     NSUInteger row = [indexPath row];

     cell.image = self.list[row][@"image"];
     cell.name = self.list[row][@"name"];
     cell.addr = self.list[row][@"addr"];

     NSLog(@"%@",cell.name);

     return cell;
}

3 个答案:

答案 0 :(得分:0)

请检查self.list的索引。它可能从N SUInteger row = [indexPath row];

中的1而不是0开始

答案 1 :(得分:0)

拿这个你的代码:

UINib *nib = [UINib nibWithNibName:@"TakeAwayCell" bundle:nil]; [tableView registerNib:nib forCellReuseIdentifier:TableSampleIdentifier];

您的视图确实加载并仅保留单元格创建委托上的分配。

答案 2 :(得分:0)

可能是,这是因为布局约束。确保tableview对齐到屏幕顶部。