我正在阅读this post以获取有关如何在UILabel中垂直对齐文本的建议,而最高评论似乎提供了一个很好的解决方案。
我有UILabel
,行数为0.然后在viewDidLoad
视图控制器中它是其中的一部分,我在其上调用sizeToFit
,但它仍然只占据中间。
在Interface Builder中看起来像这样:
当我运行它时看起来完全一样,当我喜欢它非常接近时,文本仍然离导航栏很远,最好是在那个大纲框的顶部。
我做错了什么?
答案 0 :(得分:1)
在他的原始答案正上方,他引用另一位用户说
如果你的标签作为使用autolayout的ViewController视图的子视图包含在nib或storyboard中,那么将sizeToFit调用放入viewDidLoad将不起作用,因为autolayout在调用viewDidLoad之后调整子视图的大小和位置将立即撤消sizeToFit调用的效果。但是,从viewDidLayoutSubviews中调用sizeToFit将起作用。
答案 1 :(得分:0)
该屏幕截图显示了针对标签的特定高度约束(右侧的蓝色I-bar)。这将覆盖任何sizeToFit调用,因为它们只会影响内在大小。
如果删除该约束,标签的内在大小将使其保留包含文本的最小大小,因此将在导航栏旁边。