游戏对象中的相对UILabel

时间:2013-03-22 03:07:46

标签: unity3d ngui

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

2 个答案:

答案 0 :(得分:0)

您可以使用transform.localScale属性的UILabel属性进行缩放。当文本大于让我们说20个字符时,让它们变大。尝试任意值。
此外,当您更改比例时,请运行重新对​​齐方法,该方法将其他标签对齐,以便它们不会重叠。

答案 1 :(得分:0)

您可以通过以下方式获取文本长度:

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不是一个错字,这可以确保你的文字不会变薄。

希望这有效。