UIView 中的自动布局 UILabel

Posted

技术标签:

【中文标题】UIView 中的自动布局 UILabel【英文标题】:Autolayout UILabel inside a UIView 【发布时间】:2016-04-17 18:38:40 【问题描述】:

我有一个 UIView,里面有一个子视图,它又是 UIView,在那个 UIView 里面我想在中心添加一个 UILabel,我正在使用 Autolayout。我已经为所有视图添加了所有约束,但中心的 UILabel 仅在 iPad 屏幕上可见,它在较小的屏幕上丢失,我的疑问是,当它的坐标在调整大小的父 UIView 上计算时,结果是错了,或者它被挤压得太多以至于它变得不可见。

请帮帮我,我不是这么明显的自动布局专家。 谢谢

外层 UIView 也会在父 ViewController 中全屏显示

【问题讨论】:

你对所有视图的限制是什么。 @RajanMaheshwari 更新了约束 每当您应用约束并希望布局适合每个设备时,切勿提供任何硬编码约束,如我在您的图片中看到的 View.bottom + 280。从底部 + 280 意味着在较小的 iPhone 中这个视图只会上升。为了解决这些问题,我们可以使用相等的宽度、高度或纵横比 @RajanMaheshwari 已尝试使用父视图的纵横比仍然发生同样的事情 发布了我的限制和解决方案 【参考方案1】:

这些是我的限制

这是我在所有屏幕中的布局

标签居中的位置,黑色视图也随着设备高度的纵横比增加高度

【讨论】:

你能指导我如何在标签上添加对齐垂直约束吗? 如果有帮助,请接受。只需右键单击或控制单击将标签拖动到其父视图并使约束垂直居中。我在 youtube 上创建了一个完整的自动布局系列。你也可以从那里获得自动布局youtube.com/watch?v=xGeBiWUiYnI 天哪,我忘了这个,ios 上的东西差不多 6 个月了,谢谢它的帮助。【参考方案2】:

在容器中设置前导、尾随、水平中心和顶部约束以使用其容器视图进行标记。

【讨论】:

【参考方案3】:

您应该在容器中水平对齐它。除非您显示所有约束,否则没有人可以提供帮助。

【讨论】:

仅水平对齐是行不通的,因为他已经根据 iPAd 设置了约束。这将使 iPhone 4s 或 5 的 UI 变得糟糕 @fahadkhan 所有约束都添加到第二张图片中

以上是关于UIView 中的自动布局 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

UIView 子视图自动布局问题

如何将自动布局约束添加到 tableview headerView 内的多行 UILabel?

如何在自动布局视图中获取 UIButton 位置

空 UIView 上的自动布局约束无法按预期工作

自动布局和 UILabel 的问题

如何在通知内容扩展中使用多行 UILabel / 自动布局调试布局