【问题标题】:Relative UILabel in a game object游戏对象中的相对 UILabel
【发布时间】:2013-03-22 03:07:46
【问题描述】:

我创建了一个游戏对象,它充当我动态填充的 UIGrid 的重复项。游戏对象(RowItem)有几个 UILabel,其文本可以根据内容在运行时更改。当文本变大时,这些 UILabel 的内容会重叠。当文本更多/更少时,任何人都可以帮助我如何使 UILabel 相对于相邻的 UILabel 扩展?

【问题讨论】:

    标签: unity3d ngui


    【解决方案1】:

    您可以使用UILabel 的属性的transform.localScale 属性对其进行缩放。当文本大于20个字符时,只需将它们放大即可。尝试使用任意值。
    此外,当您更改比例时,请运行 re-align 方法,该方法会对齐其他标签,以免它们重叠。

    【讨论】:

    【解决方案2】:

    您可以通过以下方式获取以像素为单位的文本长度:

    UILabel label;
    float width = label.relativeSize.x * label.transform.localScale.x;
    float height = label.relativeSize.y * label.transform.localScale.y;
    

    假设您要将最大长度设置为 100,您可以这样做:

    if (width > 100)
    {
        label.localScale = new Vector3(100 / label.relativeSize.x, 100/ label.relativeSize.x, 1);
    }
    

    Vector3 的第二个参数也是基于 relativeSize.x 不是错字,这样可以确保您的文本不会变薄。

    希望这行得通。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2011-06-02
      相关资源
      最近更新 更多