【问题标题】:how to make UILabel autosize text in storyboard (or interface builder), NOT programmatically如何使 UILabel 在情节提要(或界面构建器)中自动调整文本大小,而不是以编程方式
【发布时间】:2013-06-11 06:31:23
【问题描述】:

每次我单击并拖动 UILabel 到情节提要,然后将文本添加到文本字段时,文本都会被截断,因此我必须单击并拖动 UILabel 以将其拉伸到足够大,以便出现文字。

我不知道如何让 UILabel 自动变大以适应文本。

这将在设计新视图时节省时间。

【问题讨论】:

  • 您问:“如何将文本缩放到我在 IB 中的视图。”三个人解释了相反的情况——如何调整视图大小以适应文本,包括否定,他们获得了 32 票和正确答案确认。 Apple 有一个使用 CALayer 对文本进行矢量化的源示例(现在找不到)。我使用它作为 IBDesignable 视图的基础,因此我可以将其放入,在 IB 中设置文本,使用约束从外部定义大小,并在 IB 中查看结果。如果你仍然需要它,我可以尝试挖掘它。

标签: iphone ios xcode interface-builder xcode-storyboard


【解决方案1】:

在 Interface Builder 中的任何元素上,您都可以选择该元素并点击...

编辑器 > 适合内容的大小(键盘快捷键:CMD+=

这将对所选元素执行“sizeToFit”。标签将适合其文本大小,图像视图将调整为图像大小等...

【讨论】:

  • 我选择了一个 UILable,为什么 **Size to Fit Content ** 不可用?
  • @Geaka 只需点击 CMD =
  • 我想知道为什么“适合内容的大小”对我来说是灰色的……原来我的 UIButton 的大小已经完全适合内容了。如果我手动调整框架的大小,我以后可以使用 Size to Fit。
  • 请注意,如果您从左侧的概览列表中选择项目,则必须双击它以聚焦设计器窗格,然后才能点击Cmd-=。糟糕的。不过谢天谢地,这个提示。
  • @devios1 你救了我的命。
【解决方案2】:

在 Xcode 6.1 中,我必须将 Content Compression Resistance Priority 设置为更高的值,这可能是因为我有其他冲突的约束,或者导致 sizeToFit 选项被禁用。

之前: 之后:

【讨论】:

  • 仅适用于 iOS 9 的解决方案。如果您也有高度限制,请不要忘记设置高度
【解决方案3】:

对于文本标签:

设置为0

设置高度大于等于30(或其他值)

现在高度将根据行数进行调整。

【讨论】:

    【解决方案4】:

    从 iOS 6 开始,Interface Builder 中提供了一个新的 API,也称为“自动布局”。您可以指定一些约束,UIKit 将根据这些约束调整/移动您的视图。如果您不想使用 Autolayout,可以使用 UIViews 的 autoresizeMask 属性(也可以在 Interface Builder 中设置)。

    查看Autolayout Guide

    要在构建时调整 Interface Builder 中的视图大小,请参阅@Fogmeister 的回复

    【讨论】:

    • 链接已损坏。
    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多