gpt4 book ai didi

ios - 自动布局大小的 UITableView 行中的垂直压缩歧义

转载 作者:行者123 更新时间:2023-12-01 16:24:20 25 4
gpt4 key购买 nike

我正在使用自动布局来获取 UITableView 中的行高,如 here 所述.那部分有效。

我堆叠了一些标签,所以它们在 Interface Builder 中看起来像这样:

enter image description here

约束是您所期望的,V:|-lab1-lab2-lab3-| .问题是,它认为这是模棱两可的,并要求您更改垂直内容拥抱的优先级。

它不应该是模棱两可的。标签应定义行的高度。但是 IB 似乎正在采用行的高度,您可以将其拖到 IB 中的任何您想要的位置,作为限制标签的东西,而实际上在运行时,目的是让标签内容确定行的高度.在这张图片中,行高比它在运行时应该稍大,所以绿色标签被拉离它的文本内容,并且 IB 开始询问内容拥抱优先级。通常我会通过单击“更新帧”来解决这个问题,这会将行高拉低到标签高度,但是“更新帧”对 UITableView 中的行高没有影响.

有没有解决这个问题的标准方法?如果人们对行高使用自动布局,我认为他们一直都会遇到这种情况。

最佳答案

这里的问题是您的约束没有为每个标签指定任何明确的高度,并且您的单元格的高度似乎固定为某个值。

首先你需要让表格 View 使用UITableViewAutomaticDimension在方法heightForRowAtIndexPath
像这样在 obj-c :

-(CGFloat) tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {

return UITableViewAutomaticDimension;
}

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}

然后你需要修复标签的高度:
  • 通过将它们设置为彼此相等。这样你的细胞就可以计算它的大小。
  • 或者你允许他们通过将一个标签内容拥抱优先级设置为低(这是你当前正在做的)

  • 在您的情况下,您似乎希望每个标签具有相同的高度,因此第一个解决方案应该有效;)

    关于ios - 自动布局大小的 UITableView 行中的垂直压缩歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415565/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com