0

我有一个表格单元格,我目前有一个 UILabel 说 labelA 其高度是动态的,即基于内容。标签宽度为 290 像素。我希望在名称为 labelB 的 labelA 旁边添加另一个标签。表格单元格和 labelA 如下所示:在此处输入图像描述

问题 1 - 这里的高度正在扩大,我有 2 行在这里显示整个文本。但看起来第一行和第二行的宽度与 290 相同。有没有办法可以停止我的文本结束处的标签宽度,即在这种情况下,我的第一行标签的宽度应该是 290,但对于第二行行它应该在最后一个工作“保罗”之后结束,这样我就可以从那里开始我的下一个标签 labelB?

问题 2 - 另外,在创建 xib 时,我将两个标签放在同一行。如果我在两个标签之间设置了一个约束,labelA 可以在 labelB 展开时将它推到另一行吗?

我的单元格和标签最终应该如下所示,其中带有紫色背景的标签是 labelA,带有橙色边框和内部白色纯色的矩形是 labelB。

在此处输入图像描述

请让我知道这是否可能?我仍然是 iOS 和自动布局的菜鸟。

4

1 回答 1

0

要回答问题 1UILabel将始终将文本绘制到矩形框架中。您不能让一个 UILabel 以您正在寻找的方式绘制两行文本。您可以使用两个UILabels,每行一个,但是您必须进行一些手动计算才能确定第一个标签中可以容纳多少文本,然后将哪些文本“溢出”到第二个标签(boundingRectWithSize:options:attributes:context:将是您的朋友为了这)。

要回答问题 2,您应该将labelB的底部边缘固定到labelA的底部边缘。让每个标签的高度由内在内容大小决定。假设字体相同,这应该会产生您想要的结果。(您也可以尝试对齐两个标签的基线,但我不记得多行标签的行为方式。)

顺便说一句,你应该看看iOS 7 的 Text Kit。我个人还没有机会深入研究它,但它非常强大,你可能会在这里找到更好的方法来做你想做的事情。

于 2013-10-05T05:50:14.123 回答