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

分组UITableView 35点/像素顶部插入/填充

钱嘉致
2023-03-14

请注意,在这个问题中,我将把点称为像素。

我有一个分组的UITableView,有3个部分,每个部分都有一个40像素高的标题视图。系统似乎为表视图中的第一个标题指定了35像素的y位置。

我已经尝试了乱搞自动调整滚动视图输入和其他几个iOS7个自动件,但没有用。

为什么我的UITableView内容被35像素嵌入?

编辑:我已经看到了这个答案和许多其他关于这个的帖子。我有有效的标题和标题高度。此外,将默认值设置为FLT_MIN、0.01f、1.0f或100.0f也不能解决问题。

下面是我的头实现:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    UIView *header = (self.headerViews.count > section ? self.headerViews[section] : nil);
    return (header.viewHeight ? : FLT_MIN);
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *header = (self.headerViews.count > section ? self.headerViews[section] : nil);
    return (header.viewHeight ? header : nil);
}

我还在设置:

- (BOOL)automaticallyAdjustsScrollViewInsets{return NO;}

[self setSectionHeaderHeight:FLT_MIN];

共有3个答案

窦哲彦
2023-03-14

有多种方法可以解决同一问题,因此有多种解决方案。我将试着列出我知道的那些,以及它们相应的解决方案。大部分都是从这个问题上抄来的。

这是一个常见的问题,因为人们认为问题与他们的UITableView有关,大多数时候实际上是父UIViewController

如果您的VC嵌入在NavigationController上。你会得到一个35点的Y偏移,这里提到。

解决

>

约束条件:您的VC有一个主视图,其中放置了所有其他子视图,包括UITableView。您需要确保UITableView中的所有约束都已明确设置且满足/不含糊。

设置self.navigationController.navigationBar.translucent=YES;

设置self.automaticallyAdjustsScrollViewInsets=NO 。通过取消选中视图控制器布局的“调整滚动视图插入”复选框,也可以在故事板上设置此选项。

设置self.edgesForExtendedLayout=UIRectEdgeNone

>

  • 设置tableView.separatorInset=UIEdgeInsetsZero

    设置tableView.contentInset=UIEdgeInsetsMake(-35,0,0,0) 注意-35。负数偏移视图。

    声明此方法(也可用于FooterSection):

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

  • 雷国兴
    2023-03-14

    是的,当我设置tableview.tableFooterView和自定义设置节标题高度时,我遇到了这个问题,然后第一个节高度超过35个点。

    然后我加上一个

    tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))
    

    为我工作。

    陶超
    2023-03-14

    这似乎是:

    [self setTableHeaderView:[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, width, FLT_MIN)]];
    

    在init中,其中是一个UITableView,将摆脱前35点。

     类似资料:
    • 问题内容: 引用首长html: 您可以将填充添加到内联元素的顶部和底部,但是该填充不会影响周围其他内嵌元素的间距,因此该填充将与其他内嵌元素重叠 a)据我所知,在行内元素的顶部和底部添加填充不会(曾经)对周围的元素产生任何影响,因此对页面外观没有影响? b)但是“ 填充将与其他内联元素重叠 ”到底是什么意思?它是否暗示在某些情况下填充(内联元素的顶部和底部)会影响页面的外观? 谢谢 问题答案: 如

    • 我想做什么? 我想使用命令行插入图片到MariaDB数据库,使用LOAD_FILE功能。 发生了什么? 我总是得到一个NULL返回。 我不想要这样的解决方案:这是糟糕的风格,到目前为止我还没有看到过-尝试存储完整的路径!我想将此图片存储在这个数据库中,而不是路径中。 系统 > ArchLinux 4.7.2-1-ARCH 一张叫做“测试”的照片。jpg(817KB)位于,甚至在 这张图片属于用户和

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

    • 我有一个底部导航视图,其中显示了所选项目的背景 下面是底部导航视图xml代码: 我想删除显示在所选项目顶部的顶部填充,这样背景可以匹配底部条的高度

    • 我是新的gremlin和有一个非常简单的情况下,我需要检查: 如果顶点存在 更新属性 添加带有属性的顶点 我正在为此使用Java API。 我的代码: 我知道这是一个非常简单的案例,我参考了[CosmosDB Graph:"upert"查询模式中给出的示例 但它不起作用。如果顶点不存在,则会将其与属性一起添加,但属性也会更新。

    • 我该如何解决这个问题?