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

使用自动布局的iOS消息单元格宽度/高度

訾高明
2023-03-14

我试图创建一个动态消息单元格使用自动布局。

在大多数情况下,单元定位正确,自动布局具有以下限制:

我的第一个问题是邮件标签(可复制标签)宽度受到限制。这似乎可以通过使用本问题中描述的setPreferredMaxLayoutWidth:来解决。

身高仍然是个问题。正如你所看到的,信息泡沫仍在被切断。此外,我不确定如何确定表视图的消息单元格高度。

我希望自动布局能以某种方式正常工作。我已经在这里读到了答案,但似乎需要很多步骤。

首先,自动布局比传统的框架算法更复杂吗?

第二,使用自动布局,如何确定结果单元格的高度?

共有2个答案

燕凯旋
2023-03-14

这在iOS 8上是可能的,在AppCoda上也可以读取

基本上:

  • 将标签行设置为0。
云炜
2023-03-14

我完全使用自动布局,你说的有点问题。我不想为了UITable的性能目的修改计算内部大小的方式。

所以我用了一个非常简单的方法,最终是正确的。如果你的单元格很简单也没关系,但是如果你的单元格包含多个变量文本,它会变得很难。

我正常定义了我的单元格,在那里你可以放一个符合插图的UILabel(没问题)。然后,在表数据源中,直接定义单元格的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [TEXTOFYOURCELL sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(300, 1000)].height + 31; // Here it's defined for 15 of top and bottom insets, define +1 than the size of the cell is important.
}

编辑:这里有一些关于单元格中UILabel的代码(在init方法中)。

__titleLabel = [UILabel new];
__titleLabel.numberOfLines = 0;
[self.contentView addSubview:__titleLabel]; // adding to contentView rather than self is very important !
[__titleLabel keepInsets:UIEdgeInsetsMake(0, 15, 0, 15)];

我使用这个API:https://github.com/iMartinKiss/KeepLayout管理自动布局更简单。

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

  • 我为包含和的自定义单元格创建了一个文件。宽度是固定的,但高度应根据下载图像的大小进行调整。 此外,单元格高度应该调整,以保持它与图像视图之间的边距。 当我读到几篇关于自动布局的文章时,我不太确定我在这里做了什么:(如果有任何错误,请指出正确的方法) > 为了保持和之间的边距,我应该创建一个约束。 前一步是通过选择和>,然后转到编辑器- 到目前为止,假设如果我调整图像视图的高度,单元格会自动调整自己

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

  • 我有一个视图控制器,它有一个UITableView实例,并使用自动布局约束来呈现它。我希望在这个表格视图中有可变的单元格高度。我不想自己计算细胞高度,因为我有一个复杂的细胞内容,由几个标签和图像组成,这些标签和图像可以因细胞而异。我相信可以让自动布局单元格调整自己的大小,使其包含所有子视图(即,在将文本分配给?之后,使用标签的sizeToFit方法)。 我有一个自定义单元格类,它使用自动布局的可视

  • 问题内容: 我有一个UILabel,一个UIView在情节提要中并排包含其他子视图。UIView应该紧靠UILabel的右边缘(跟踪约束为1),但我还需要UIlabel(左侧的UIlabel)将其宽度设置为等于其内容大小,除非它达到最大宽度。视觉上: |标签文字| | UIViewWithSubviews | 我需要以下约束: 1)标签应明智地调整宽度大小,除非达到最大大小,并且高度也是动态的,这

  • 我应该添加哪些约束来设置宽度和高度与Superview成比例(在我的例子中是UIViewController的视图)在iOS自动布局中,通过自动调整大小,我们可以像下面显示的图片一样进行操作。