垂直对齐UILabel中的文本并获取其下方的视图以相应地向上移动

时间:2011-11-27 06:45:43

标签: iphone ios cocoa-touch uilabel

我正在使用here描述的解决方法将多行UILabel中的文本垂直对齐到顶部。不幸的是,这只解决了问题的一半,因为我还想要折叠剩余空间并移动标签下方的其他标签以向上移动并消耗空间。

有没有办法实现这一点,而不必亲自计算其他视图的框架,从而接管布局?

Here's a screenshot我的问题。为了方便起见,我为相关标签的背景着色。蓝色标签应该向上移动并消耗红色标签的未使用空间。红色标签配置为3行,字体自动收缩功能关闭。

1 个答案:

答案 0 :(得分:1)

您必须重新计算标签框,然后在视图中重新排列标签。 或者您可以尝试使用CoreText制作更复杂的布局,而无需处理这些帧重排。在GitHub上有一个很好的BSD许可工作,名为NSAttributedString + HTML:https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML,尝试在iOS中使用OSX中已有的相同方法进行移植。它基于CoreText,通过这个类,您可以将页面编写为html,并在不使用UIWebView的情况下将其呈现在屏幕上(并且没有其限制)。根据您的屏幕截图,使用简单的html很容易实现希望的结果。