为啥在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心
Posted
技术标签:
【中文标题】为啥在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心【英文标题】:Why does sizeToFit not work when trying to vertically align my UILabel? It just stays in the center为什么在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心 【发布时间】:2013-10-02 03:14:33 【问题描述】:我正在阅读 this post 以获取有关如何在 UILabel 中垂直对齐文本的建议,顶部评论似乎提供了一个很好的解决方案。
我有我的UILabel
,行数为0。然后在viewDidLoad
作为视图控制器的一部分,我在上面调用了sizeToFit
,但它仍然只占据中间。
在 Interface Builder 中看起来像这样:
当我运行它时看起来完全一样,当我希望它非常靠近时,文本仍然离导航栏很远,最好是在那个轮廓框的顶部。
我做错了什么?
【问题讨论】:
【参考方案1】:就在他原始答案上方的底部,他引用了另一个用户的话
如果您的标签作为使用自动布局的 ViewController 的视图的子视图包含在 nib 或情节提要中,则将 sizeToFit 调用放入 viewDidLoad 将不起作用,因为在调用 viewDidLoad 后自动布局会调整子视图的大小和位置将立即撤消 sizeToFit 调用的影响。但是,从 viewDidLayoutSubviews 中调用 sizeToFit 会起作用。
【讨论】:
【参考方案2】:该屏幕截图显示了针对标签的特定高度限制(右侧的蓝色 I 条)。这将覆盖任何 sizeToFit 调用,因为它们只会影响内在大小。
如果您删除该约束,标签的固有大小将使其成为包含文本的最小大小,因此将位于导航栏旁边。
【讨论】:
以上是关于为啥在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心的主要内容,如果未能解决你的问题,请参考以下文章
使用 lineHeightMultiple 控制行间行距时,如何在 UITableViewCell 中垂直对齐我的 UILabel?