首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xcode快速约束问题与tableview和uilabel休息

xcode快速约束问题与tableview和uilabel休息
EN

Stack Overflow用户
提问于 2017-10-14 15:49:56
回答 2查看 538关注 0票数 0

我早些时候发了这篇文章,但是没有得到一个关于如何解决我的问题的答案,所以我再次尝试。希望在约束方面比我有更多知识的人能帮上忙。

简单地说,我有一个UIViewController和一个UITableView。其中一个单元格包含到UILabels。我正在试图弄清楚如何在文本包装时第二次调整UILabel的大小。

这是截图:

我已经尝试过,并向我解释了对LabelBio有四个限制。

  1. 引导到superview -我尝试过边距和超级视图
  2. 跟踪到superview
  3. 顶层到LabelSellerInfo
  4. 高度>=

但这些似乎不能解决这个问题。我肯定我做错了什么,但我不知道我错过了什么。有人还建议有一个LabelBio到超级视图底部,但这并不是一样的工作。

随附的截图,这是我的结果:

我对约束是陌生的,并不真正理解什么是错的。是一个能够向我提出解决方案的人,这样我才能理解如何使这件事奏效。我所读到的关于约束的每一篇文章都让我相信,这应该是可行的,但实际上并非如此。

我还尝试过定义方法heightForRowAt和退出UITableViewAutomaticDimension,并尝试设置.rowHeight = UITableViewAutomaticDimension。

如果需要更多的信息来帮助我解决我的问题,请告诉我。

我的另一篇文章是:在UILabelView中自动增加/降低UITableViewCell高度?

谢谢你的帮助!!

EN

回答 2

Stack Overflow用户

发布于 2017-10-14 17:11:21

你已经完成了大部分工作。

在contentView中添加Labelbio的底部约束应该足以使contentView能够计算其高度。

票数 1
EN

Stack Overflow用户

发布于 2017-10-14 18:26:33

让我们将其分为三个问题:

  1. 使UILabel垂直展开以容纳任意文本
  2. 使TableViewCell子类垂直展开以容纳任意内容
  3. 使两者协同工作

使UILabel垂直展开以容纳任意文本

定义UILabel时,请确保执行以下操作:

代码语言:javascript
运行
复制
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping

这将告诉您的标签不要使用显式提供的行数,并自然打破提供的文字在字界。结合固定或最大宽度,这将为您的标签创建隐式行数(从而隐式高度)。

有关更多信息,请查看文档

使TableViewCell子类垂直展开以容纳任意内容

苹果包括一款特殊的“自动布局指南”中有关自调整表视图单元格的节。。重要的部分是在表视图(而不是表视图单元格)中设置这两个属性:

代码语言:javascript
运行
复制
tableView.estimatedRowHeight = // Pick an appropriate value
tableView.rowHeight = UITableViewAutomaticDimension

设置两个属性后,表视图单元格将使用自动布局来确定其高度。

使两者协同工作

您的表视图单元格现在正在查找它们的内容,以提供隐式高度。您需要创建一个从单元格顶部到底部的完整约束链,以将它们推开到正确的高度。在图片中的示例中:

  • LabelSellerInfo顶部约束为超级视图上边距
  • LabelSellerInfo底部约束为LabelBio顶部(加上任何边距)
  • LabelBio底部约束为超级视图底部边距

您还应该在某种程度上限制LabelBio的宽度或前缘和后缘;您在图像中显示的内容很好。综合起来,这些设置和约束将创建自调整大小的表视图单元格,其中包含基于文本更改高度的LabelBio

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46746400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档