当前位置: 首页 > 知识库问答 >
问题:

iOS:UITableView底部的额外空间

束福
2023-03-14

我已经以编程方式创建了UITableView,但它下面有一些额外的空间(准确地说是29像素)。

以下是初始化表的方式:

UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
[tableView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.contentView addSubview:tableView];
self.alertsTableView = tableView;

以下是限制条件:

    @"V:|-10-[_alertsTableView(0)]-5-[_optionsLabel]",
    @"H:|-15-[_alertsTableView]-15-|", 

我尝试将页脚视图设置为零,并将其高度返回零:

[self.tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}

我动态改变它的高度,根据内容:

- (void)updateHeight:(CGFloat)height {
    if (self.tableView.superview) {
        NSLayoutConstraint *heightConstraint;
        for (NSLayoutConstraint *constraint in self.tableView.superview.constraints) {
            if (constraint.firstAttribute == NSLayoutAttributeHeight) {
                heightConstraint = constraint;
                break;
            }
        }
        heightConstraint.constant = height;
    }
}

我还将setAutomaticallyAdjustsScrollViewInsets设置为NO。这就是最终的结果。单元格和空白之间有分隔符,但底部不是单元格。

共有2个答案

许琛
2023-03-14

尝试添加表格视图页脚视图

tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
胡越泽
2023-03-14

您可以使用contentInset来补偿29px的额外底部边距:

tableView.contentInset = UIEdgeInsetsMake(0, 0, -29, 0);
 类似资料:
  • 我的tableview在底部有一个额外的空间,如图所示: tableView中的所有行都具有71pt的固定高度。

  • 我只是面临一个让我发疯的问题。我不明白为什么在我的tableView顶部和作为我的tableViewHeader的视图底部之间增加了一个额外的空间。标头的视图是pageViewController的视图,它在底部有自己的pageControl。 这很奇怪,因为iOS没有在这些项目之间添加空格。默认情况下,它们总是堆叠在一起,没有额外的填充。而且这个空间不是从头的视图中得到的,我在Xcode的视图调

  • 从iOS 9.3.2开始,顶部和底部都有额外的空间。 下面是一些例子: 大约有20个像素无法解释的填充。谁能解释一下它们是从哪里来的? 这对我不管用。

  • 我对目标C和iOS有点新手,所以我的问题可能很愚蠢:)我在调试模式下检查了self.table数据,那里没有空项,并且返回正确的值。下面是UITableView数据源方法: 以下是我得到的: 在模拟器:http://take.ms/rm2DL 视图层次结构:http://take.ms/oALdi 这个空白区域正好有超过20个点的高度,所以我假设它应该是某种奇怪的标题。

  • 我正在使用recyclerview显示来自web服务的图像列表。我正在尝试在CardView小部件的ImageView中显示图像。一切正常。所有图像和列表都正确显示。但当我尝试在Kitkat 4.4.4上运行时,它会在Cardview中的图像顶部和底部显示额外的(大)填充。我只使用ImageView,没有文本,没有任何内容。 检查附加图像。 Cardview的XML代码

  • 我将视图背景颜色设置为绿色,这样您可以清楚地看到底部的额外空间。 无论我将高度设置为大于,也不设置扩展边缘取消选择"下顶栏",额外的空间总是存在的。 你能给我一些建议吗?我使用了Xcode 5和IOS SDK 7.0。 谢谢。