如何从iphone应用程序中的tableView中删除多余的空间

时间:2013-10-21 05:17:06

标签: iphone ios

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

enter image description here

你可以在tableView中看到空格,我想删除这个

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

这是使用border for table的表的代码。

5 个答案:

答案 0 :(得分: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; 
      }

答案 1 :(得分: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];
}

答案 2 :(得分: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);

答案 3 :(得分: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;
}

答案 4 :(得分:0)

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

  • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {  //这将创建一个"隐形"页脚  返回0.01f; }

供参考,请浏览此链接

Eliminate extra separators below UITableView