使用自动布局、IB 和字体大小时表头视图高度错误

2024-05-16

我正在尝试为我的 uiTableView 创建一个标题视图(不是节标题,我已经有了。)我已经在界面生成器中设置了一个 XIB。所有的连接都已连接好并且运行良好......除了桌子没有给它足够的空间!我的问题是表格顶部与表格标题有一点重叠。

我的 XIB 为所有按钮设置了自动布局,IB 很高兴这些约束不冲突/不明确。视图设置为自由格式大小,在我的例子中最终为 320 x 471。然后在视图的约束中,我为相同的视图设置了固有大小。

现在这与我的桌子完美配合。一切看起来都很棒。但是,如果我使用代码手动更改标题视图中的任何字体,布局会使视图更大,并且它最终会出现在我的表格下方。

有什么想法如何让 tableviewcontroller 在设置字体和大小后为标题视图留出足够的空间吗?我希望我的解释是有道理的。


注意:可以在此处找到 Swift 3+ 版本:https://gist.github.com/marcoarment/1105553afba6b4900c10#gistcomment-1933639 https://gist.github.com/marcoarment/1105553afba6b4900c10#gistcomment-1933639


这个想法是在帮助下计算标题的高度systemLayoutSizeFittingSize:targetSize.

返回满足其所持有的约束的视图的大小。 考虑所有约束来确定视图的最佳大小 保留及其子视图的保留。

更改标题高度后,需要重新分配tableHeaderView属性来调整表格单元格。

基于这个答案:在 UITableView 中使用自动布局来实现动态单元格布局和可变行高 https://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts-variable-row-heights?lq=1

- (void)sizeHeaderToFit
{
    UIView *header = self.tableView.tableHeaderView;

    [header setNeedsLayout];
    [header layoutIfNeeded];

    CGFloat height = [header systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = header.frame;

    frame.size.height = height;
    header.frame = frame;

    self.tableView.tableHeaderView = header;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用自动布局、IB 和字体大小时表头视图高度错误 的相关文章

随机推荐

  • jquery 验证不会因复选框而被触发

    我有一个表单 我使用 jQuery 验证从前端进行验证 大多数验证都按照我的意愿进行 但是 对于复选框 验证不起作用 我的验证 jquery 中有以下规则和消息 submitDetails validate 1 validation rul
  • 必填字段验证器在下拉列表回发时消失

    我在 asp net 中填充两个下拉列表 两者都分配给必填字段验证器 隐藏代码如下 if Page IsPostBack DataTable dt new DataTable dt Columns Add emp dt Columns Ad
  • 如何在 Laravel 中 session_write_close() ?

    Running session write close before sleep 在 Laravel 中似乎不起作用 因为会话仍然被其他请求阻止 直到当前连接完成 我试图sleep 在 Laravel 中 不会阻止其他请求 发现 sessi
  • 有没有办法在 JTS 中将自相交多边形转换为多重多边形?

    取无效多边形POLYGON 0 100 100 100 0 0 100 0 0 100 一个带有未声明交点的煮蛋定时器形状 许多说明说 JTS 可以使用以下命令创建此版本的有效版本 buffer method Geometry input
  • 使用 utf-8 的 Java BufferedWriter 对象

    我有以下代码 我想让输出流使用 utf 8 基本上我有这样的角色 显示为 233 所以看起来像是编码问题 我见过很多使用 的例子 OutputStreamWriter out new OutputStreamWriter new FileO
  • TFS 构建控制器:“无法加载文件或程序集“Microsoft.WindowsAzure.StorageClient,版本=1.7.0.0”

    如您所知 您的 TFS 预览版不支持 Azure SDK 1 8 因此我们使用本地 TFS 构建控制器来构建我们的项目 在 Azure 持续集成部署构建期间 我们收到此错误 Exception Message Could not load
  • 只允许一种身份验证机制;只有 X-Amz-Algorithm 查询参数..?

    我正在尝试将 PUT 请求发送到 amazonS3 预签名 URL 即使我只有一个 PUT 请求 我的请求似乎也被调用了两次 第一个请求返回200 OK 第二个返回400 Bad Request 这是我的代码 var req method
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后
  • 对 Pandas DataFrame 进行类型检查

    我想对 Pandas DataFrames 进行类型检查 即我想指定 DataFrame 必须具有哪些列标签以及哪种数据类型 dtype 存储在其中 一个粗略的实现 受此启发question https stackoverflow com
  • 第一次点击时的 event.preventDefault() 然后删除

    如果它有一个类子导航 我会禁用默认锚点 如下所示这把小提琴 http jsfiddle net aaronk85 5Quee 我只希望在第一次单击时禁用此功能 然后我希望恢复正常的锚点功能 做这个的最好方式是什么 我尝试了涉及以下代码的操作
  • 在 docker 中将 pgadmin 连接到 postgres

    我有一个docker compose与服务文件python nginx postgres and pgadmin services postgres image postgres 9 6 env file env volumes postg
  • 使用 Promise 对 Google 表格进行多次查询

    我是一名初学者编码器 需要一些帮助来加快我的 Google 表格查询速度 我环顾四周 找不到解决方案 我正在尝试快速对 Google 表格运行 25 个查询 这就是我的尝试方式 对 Google 工作表运行查询 将结果推送到数组 运行不同的
  • LinqToSql 声明和实例化 DataContext 最佳实践?

    设置 DataContext 以便在扩展 LinqToSql 类中轻松访问方面的最佳实践是什么 例如 我的 dbml 中有一个 User 实体 我想向该类添加方法 如下所示 Partial Public Class User Public
  • 从队列更新活动的最佳方法

    我有一个LinkedBlockingQueue在我的 生产者 调解者 消费者 模型中的调解者中 Producer 首先更新将 Mediator 添加到 ActivityQueue 中 接下来 消费者 活动在队列中等待 侦听并获取下一个项目
  • 尝试渲染 SDL_Texture 时 C++ SDL2 错误:无效纹理

    我正在尝试制作一个简单的游戏 当我尝试渲染我的SDL Texture 我收到一个莫名其妙的错误 我已经将一切设置正确 我能够成功地清除屏幕SDL RenderClear 并且我的纹理不为空 因此它应该已正确创建 但是当我尝试打电话给rend
  • 检测桌面是否被锁定[重复]

    这个问题在这里已经有答案了 可能的重复 如何以编程方式确定我的工作站是否被锁定 https stackoverflow com questions 44980 how can i programmatically determine if
  • 错误请求 400:nginx/gunicorn

    我已经遵循了这个教程 http blog wercker com 2013 11 25 django 16 part3 html http blog wercker com 2013 11 25 django 16 part3 html我现
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • 如何使用 Compose 创建具有用户定义的 IP 和 MAC 地址的 Docker macvlan

    我有一个使用 MAC 地址执行硬件许可证的 Docker 项目 我无法更改此设置 ISV 使用包含 MAC 地址的硬件指纹 我正在尝试创建一个 macvlan 网络 它将使用物理适配器并从我的网络 DHCP 服务器获取 IP 地址 或者我将
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB