Dun*_*can 6 uilabel autolayout ios6
我正在尝试使用iOS 6.0中的新autolayout api构建动态布局.我尝试构建的布局有2个按钮,它们之间有一个标签,如下图所示:

我想要的是灰色显示的容器视图的大小增加或减少,具体取决于标签中的文本数量.
到目前为止,我已经设法使布局完全按照我无法解决的一个小问题的描述工作.我遇到的问题是标签的固有高度总是用标签的原始宽度(例如在界面构建器中设置的那个)计算,而不是根据我在其上的约束设置的标签的宽度.
我对视图的约束如下:
所有这些约束共同创建了所需的布局.
然而:

为了帮助澄清这一点,以上布局的IB视图如下(注意更窄)

似乎正在发生的事情是,尽管标签宽度没有约束,但标签似乎根据标签创建时的原始宽度计算其高度(以及自动布局计算的容器高度).然而,最奇怪的是文本似乎是正确的宽度和高度,但标签本身有一个太大或太小的框架.
我想这与事情发生的顺序有关,并尝试在containerViews layoutSubview方法中调用updateConstraintsIfNeeded但是这似乎没有做任何事情.
任何建议将不胜感激.
Mar*_*ski 10
可能是我迟到了,但无论如何我找到了解决办法.任何时候更改标签宽度时,您需要手动更新Label的preferredMaxLayoutWidth.例如:
Label.preferredMaxLayoutWidth = 200;
Run Code Online (Sandbox Code Playgroud)
"界面"构建器将preferredMaxLayoutWidth设置为具有初始标签宽度.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
6739 次 |
| 最近记录: |