在 Xcode 界面构建器中创建动态调整大小的 UILabel

Posted

技术标签:

【中文标题】在 Xcode 界面构建器中创建动态调整大小的 UILabel【英文标题】:Creating a dynamically sizing UILabel in the Xcode interface builder 【发布时间】:2018-05-27 22:54:18 【问题描述】:

我希望能够创建一个 UILabel,它会以比普通 AutoLayout 更复杂的方式调整其大小。我已经在互联网上寻找答案,但无济于事。

这就是我想要它做的事情。

假设您正在 iPhone 上查看它。我希望它距离以中间为中心的任一边缘 16 点。 (身高在任何情况下都无关紧要)

但是,当屏幕变宽时,我希望 UILabel 拉伸,使其距离每个边缘 16 点,直到它达到 500 宽。一旦它达到 500 宽度,我不希望它变得更宽。这是两边的 16 个点增加的地方,标签仍然保持在中心。

现在您正在 iPad 环境中查看它。 UILabel 正好是 500 磅宽并且在中心。

如果可能,我希望能够使用 AutoLayout 而不是代码来完成此任务,但如果代码是必须的,我可以处理。

感谢您的考虑。感谢所有帮助。

【问题讨论】:

【参考方案1】:

你可以通过 3 个约束来做到这一点:

    标签在视图中水平居中 设置宽度限制 将前导空间限制设置为 16。将此优先级设为

当视图很宽时(如在 iPad 上),标签将拉伸到其全宽 500Auto Layout 将保持标签居中,并通过保持前导空间尽可能接近16 来尽力满足第三个约束。它选择打破这个约束是因为优先级低于1000

当视图较窄时(例如在 iPhone 上),标签的前导空格为 16(尾随空格为 16,因为标签居中)。宽度将是剩下的,因为它满足width <= 500 约束。

【讨论】:

这很棒!仅供可能遇到此问题的其他人参考,前导约束的优先级不能为 500 或更低; 999 为我工作。

以上是关于在 Xcode 界面构建器中创建动态调整大小的 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中创建自定义 xib 视图大小

无法让 UIScrollview 在 Xcode 7 中开始缩小

Xcode 界面生成器。这些自动调整大小的蒙版设置有何不同?

Qt,Designer 在scrollArea 中创建scrollAreaWidgetContents,我无法调整图像标签的大小

XCode:无法在界面构建器中将 UIView 拖放到 UIViewController 上

如何调整html中的图像大小以适应屏幕尺寸?