我在iphone应用程序中制作,其中有表显示数据工作正常,但我想要的是,如果只有两行,那么表格不会显示其他空白空间,如附加屏幕所示。
你可以在tableView中看到空格,我想删除这个
[tableView.layer setCornerRadius:7.0f];
[tableView.layer setMasksToBounds:YES];
tableView.layer.borderWidth = 0.5;
tableView.layer.borderColor = [UIColor grayColor].CGColor;
这是使用border for table的表的代码。
答案 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)
您可以使用此委托方法删除额外空间
供参考,请浏览此链接