0

我在 iphone 应用程序中制作,其中有显示数据的表格,它工作正常,但我想要的是,如果只有两行,那么表格不会显示其他空白空间,如所附屏幕所示。

在此处输入图像描述

您可以在 tableView 中看到空白空间我想删除它

    [tableView.layer setCornerRadius:7.0f];
    [tableView.layer setMasksToBounds:YES];
    tableView.layer.borderWidth = 0.5;
    tableView.layer.borderColor = [UIColor grayColor].CGColor;

这是使用表格边框的表格代码。

4

5 回答 5

0

将 UIview 放在表格视图的页脚

 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
       {
         return 1;
       }
  - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section; 
      {
           UIView *view=[[[UIView alloc]init]initWithFrame:yourtablefrmae];
         return view; 
      }
于 2013-10-21T05:25:00.327 回答
0

在您的代码中添加此方法:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    return [UIView new];

    // If you are not using ARC:
    // return [[UIView new] autorelease];
}
于 2013-10-21T05:27:03.197 回答
0

该表只是一种 UIView,其框架与其数据源中的行数无关。您可以将两者关联起来,但需要在代码中明确地这样做,如下所示:

// assuming one section and a fixed row height
CGFloat tableHeight = [self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight;
CGRect frame = self.tableView.frame;
self.tableView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, tableHeight);
于 2013-10-21T05:28:25.943 回答
0

//在自定义单元格页眉页脚和任何其他废话的情况下实现此

CGFloat tableHeight = [self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight;
CGRect frame = self.tableView.frame;
self.tableView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width,[self getHeightForTableView:self.tableView]);

//也将此方法添加到您的viewController

-(CGFloat)getHeightForTableView:(UITableView*)tableView
{
    CGFloat tableViewHeight=0.0;

    NSArray *indexPaths=[tableView indexPathsForVisibleRows];
    NSInteger oldsection=((NSIndexPath*)[indexPaths firstObject]).section;

    tableViewHeight+=[tableView.delegate tableView:tableView heightForFooterInSection:oldsection];
    tableViewHeight+=[tableView.delegate tableView:tableView heightForHeaderInSection:oldsection];

    for(NSIndexPath *path in indexPaths)
    {
        if(oldsection!=path.section)
        {
            tableViewHeight+=[tableView.delegate tableView:tableView heightForHeaderInSection:path.section];
            tableViewHeight+=[tableView.delegate tableView:tableView heightForFooterInSection:path.section];
            oldsection=path.section;
        }
        tableViewHeight+=[tableView.delegate tableView:tableView heightForRowAtIndexPath:path];

    }
    return tableViewHeight;
}
于 2013-10-21T06:14:42.080 回答
0

您可以使用此委托方法删除额外的空间

  • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { // 这将创建一个“不可见”的页脚 return 0.01f; }

参考通过这个链接

消除 UITableView 下面多余的分隔符

于 2013-10-23T12:06:53.727 回答