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