前提条件
做ui的时候,用ContentSizeFitter 设置内容,并如果把内容放在了,Scroll View的Content 内。这样就需要随时更新Content 的高度,保证所有内容都能被看到。所以需要根据内容的高度,设置Content 的高度。
一、改之前
二、步骤
1.代码示例
jieshao_contant.text = "5555555555";
LayoutRebuilder.ForceRebuildLayoutImmediate(jieshao_contant.rectTransform);
parentRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, jieshao_contant.rectTransform.rect.height);
2.关键代码
代码如下(示例):
LayoutRebuilder.ForceRebuildLayoutImmediate(jieshao_contant.rectTransform);
jieshao_contant.rectTransform是你要改的内容。
效果
总结
ContentSizeFitter,自适应宽高脚本要在下一帧的时候才会适应宽高。如果想立即生效,可以调用
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
这里的rectTransform是当前物体的RectTransForm。
此处还有一个问题,就是如果是ContentSizeFitter嵌套,则需要刷新每一个RectTransForm
foreach(所有有ContentSizeFitter的子物体)
{
LayoutRebuilder.ForceRebuildLayoutImmediate(子物体的rectTransform);
}