为什么sizeToFit在尝试垂直对齐我的UILabel时不起作用?它只是留在中心

时间:2013-10-02 03:14:33

标签: ios objective-c uiview uilabel sizetofit

我正在阅读this post以获取有关如何在UILabel中垂直对齐文本的建议,而最高评论似乎提供了一个很好的解决方案。

我有UILabel,行数为0.然后在viewDidLoad视图控制器中它是其中的一部分,我在其上调用sizeToFit,但它仍然只占据中间。

在Interface Builder中看起来像这样:

enter image description here

当我运行它时看起来完全一样,当我喜欢它非常接近时,文本仍然离导航栏很远,最好是在那个大纲框的顶部。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

在他的原始答案正上方,他引用另一位用户说

  

如果你的标签作为使用autolayout的ViewController视图的子视图包含在nib或storyboard中,那么将sizeToFit调用放入viewDidLoad将不起作用,因为autolayout在调用viewDidLoad之后调整子视图的大小和位置将立即撤消sizeToFit调用的效果。但是,从viewDidLayoutSubviews中调用sizeToFit将起作用。

答案 1 :(得分:0)

该屏幕截图显示了针对标签的特定高度约束(右侧的蓝色I-bar)。这将覆盖任何sizeToFit调用,因为它们只会影响内在大小。

如果删除该约束,标签的内在大小将使其保留包含文本的最小大小,因此将在导航栏旁边。