UItableviewcontroller不会在行中显示数据并创建额外的行

时间:2016-12-21 06:02:16

标签: ios objective-c uitableview

enter image description here enter image description here

我创建了UITableViewController。我有一个NSMutableArray,有三条记录。我创建了一个自定义UITableViewCell类,并将其与TableViewCell相关联。但是在运行程序时,我的tableview显示在输出下方。只有三个记录,但表格视图显示5行,我的所有数据都显示在第一行本身。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  return 1;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
callRecordsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CallRecordsCell" forIndexPath:indexPath];
callRecords *record = [self.callRecordsDataController callRecordAtIndex:indexPath.row];
NSLog(@"Indexpath row now is %d",indexPath.row);
cell.callRecordOriginalDestinationLabel.text = record.originalDestination_Alias;
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"dd-MMM"];

cell.callRecordStartTime.text = [[NSString alloc]initWithString:[df stringFromDate:record.start_Time]];
cell.callRecordCallDuration.text = record.call_Duration;
return cell;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSLog(@"count is %d",[self.callRecordsDataController callRecordsCount]);
return [self.callRecordsDataController callRecordsCount];
}

DataController代码

-(NSUInteger)callRecordsCount{
    return [self.callRecordsList count];
}

- (callRecords *)callRecordAtIndex:(NSUInteger)index{
   return [self.callRecordsList objectAtIndex:index];
}

2 个答案:

答案 0 :(得分:2)

我发现了问题。这是因为iphone7plus模拟器中的渲染问题。我在其他模拟器中运行了相同的项目,正确显示它。

!iphone7plus simulator iphone7 simulator

答案 1 :(得分:1)

  

只有三条记录但是表视图显示了5行,我的所有数据都显示在第一行本身。有人帮忙吗?

  1. 首先,我认为该表只显示3条记录。
  2. 三条记录未显示在同一行中。
  3. 我的猜测,

    1. 回到故事板,我认为您错误地设置了单元格中的行高,分隔符和布局约束。
    2. 请筛选故事板并发布您的手机设计。

      另请阅读本教程,了解如何使用storyboard创建自定义单元格:  https://www.appcoda.com/ios-programming-customize-uitableview-storyboard/