http://blog.csdn.net/ldy597321444/article/details/77968728
上一篇 博客中记录了text.preferredHeight在项目中 不准确的事情,后来发现了问题所在。
是界面在打开之后又立即关闭,text.preferredHeight 还没有完全获取到文字的高度信息,就被关闭,导致数据与真实数据不符,
后来在项目中做文字根据背景大小适配的时候 用了ContentSizeFitter 进行扩充,但是发现ContentSizeFitter是有问题的,雨松大大博客有讲过
ContentSizeFitter使用Preferred Size来设置RectTransform不能立即生效,必须要等一帧
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform)
这行代码可以让ContentSizeFitter 立即生效 参数为你要生效的物体 类型是RectTransform
LayoutRebuilder.ForceRebuildLayoutImmediate(_blockText.GetComponent<RectTransform>());
var updateHeight = _blockText.preferredHeight;
rectObj.sizeDelta = new Vector2(300, updateHeight);