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

使用自动布局将表格视图单元格高度调整为图像高度

皇甫心思
2023-03-14

我为包含标签图像视图的自定义单元格创建了一个xib文件。图像视图宽度是固定的,但高度应根据下载图像的大小进行调整。

此外,单元格高度应该调整,以保持它与图像视图之间的边距。

当我读到几篇关于自动布局的文章时,我不太确定我在这里做了什么:(如果有任何错误,请指出正确的方法)

>

  • 为了保持图像视图单元格之间的边距,我应该创建一个约束。

    前一步是通过选择图像视图cell>,然后转到编辑器-

    到目前为止,假设如果我调整图像视图的高度,单元格会自动调整自己的高度,以保持调整前的边距。

    为了使图像视图高度调整为ImageI need a constraint with…(?)

    已经阅读了这篇文章,实际上他们很好地解释了如何使用它,但不是细节:

    • http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

    也请阅读此问题,但它根本没有涉及自动布局-更改UIImageView大小以匹配图像和自动布局

    编辑:使用iOS 7

  • 共有2个答案

    司空昊阳
    2023-03-14

    在iOS 8之前这是一件痛苦的事情。您的表视图委托必须实现方法-tableView:heightForRowAtIndexPath:来确定每个单元格的高度。谢天谢地,iOS8中的情况发生了变化,一个细胞可以决定自己的大小。

    孙永嘉
    2023-03-14

    以下是您尝试执行的操作的主要问题:

    1) tableView需要知道单元格的确切高度。如果约束可以来自UIImage而不是UIImageView,则单元格的高度将更改。幸运的是,UIView不会通过自动布局改变自己的高度。

    2)要获得UITableViewCell的高度,您首先需要该图像的高度。真糟糕。

    因此,这里有一些解决方案:

    1) 在你的课堂上,保留一个索引路径到cellHeights的字典。在确定tableView:heightForRowAtIndexPath:时选中此选项。如果为空,则返回静态高度。

    当单元被配置时,它们可以在后台请求它们的图像。当您设置图像时,获取其大小(仅使用UIImage的size属性)并使用该单元格的indexPath作为键、imageView上方/下方的填充高度以及图像的高度来设置tableViewController的字典。告诉tableView重新加载该单元格,或者执行“ol[self . table view begin updates];[self . table view end updates];诡计。

    2)请求ViewController中的所有图像,为您的数据源返回0行。当它们都被获取后,在为您的数据源准备好数据(尤其是单元格高度)后重新加载表视图。

    掌握UITableView的自动布局需要一些时间。通常,最困难的部分是在没有实际单元格的情况下确定单元格的高度。根据可以调整单元格高度的因素,在viewController中保留一个“模板”单元格可以更容易地在每次需要确定高度时使用内容进行一遍又一遍的重新配置,或者使用关于单元格布局的知识,而这些知识只有在构建它时才知道。在这种情况下,后者听起来最容易,因此我建议如何确定解决方案1的高度。

     类似资料:
    • 我有一个带有一堆单元格的表视图(自定义单元格,它只有它的内容视图)。 在 中,我正在向自定义单元格的content视图添加一个预定义的UIView(它有几个子视图)。我之前为UIView及其子视图设置了所有约束。 最后但并非最不重要的是,我为我的自定义单元格的内容视图(superview)和UIView设置了垂直和水平约束,UIView是在(subview)之前添加的。 约束字符串如下所示: 不幸

    • 我在UIViewController中有一个UITableView作为视图的一部分。我正在尝试根据文本的长度自动调整表格单元格的大小。它不会设置textview的文本,单元格将以idCellTextView单元格的标准高度结束。我已经四处搜索过,正在尝试从单元格内的文本视图相对于内容视图和代码在自动布局中使用固定,如下所示: 与问题相关的视图控制器的其余部分显示在以下位置:

    • 场景- > TableView高度是使用纵横比相对于superview的高度动态设置的。 TableViewCell的高度是根据表格视图的高度计算的: 问题 - 最初在委托方法中没有正确计算表格视图高度。但在滚动单元格后正确计算。 尝试的解决方案: 在视图中重新加载。 调用 在单元格中进行. 有什么方法可以正确计算出这个表格的高度吗?

    • 我想利用iOS 8中新增的动态高度。我需要在UITableViewCell中放置一个UICollectionView。我想确保集合视图中的所有单元格在屏幕上都可见,因此表格单元格的高度应该增加以适合集合视图。我差点就要工作了。我只是无法使表格单元格的大小合适——它的高度要么太长要么太短,在我与表格交互之前,一些布局问题是可见的(更多信息请参见下文)。 我已经将集合视图的自动布局约束设置为表的单元格

    • 对于我的表视图单元格的动态高度,我从此链接中引用。在 UITableView 中使用自动布局进行动态单元格布局 这是我的表视图数据源和委托方法的代码 我有 2 个问题: > 我的问题是我在线路附近收到错误 在和。 为什么我必须在单元格中同时写入标签文本“和? 另外,我是否缺少实现单元动态高度所需的任何内容?

    • 我正在 中使用 现在我遇到了表视图单元格高度的问题。我正在聊天屏幕上工作,所以我有文字,图像。所以我在管理屏幕的其中取了一个原型单元。现在下面是我的身高代码 因此,文本单元格没有得到我所期望的,但我不知道我的错误在哪里,还有一件事,如果我< code > returnuitableviewautomaticdimension ,它的工作很好的文本信息,而不是图像。请帮助我,先谢了。