强制刷新UI高度

在做UGUI的时候,发现就是如果在垂直布局的里面,再加一个垂直布局,那么在生成预制体之后,就是预制体会重叠。
但是,实际上呢,你所有的操作都没有错,但是为什么预制体还会重叠呢?
过了一会你会发现,Unity会自动把预制体归位。。。但是这一会,有点长,一下代码就可以让页面布局刷新。
用在生成完预制体,直接调用这个函数就可以了。

    /// <summary>
    /// 刷新content的高度,使得item之间不叠加
    /// </summary>
    /// <param name="rect">有layout组件的窗体</param>
    /// 
    public void UpdateLayout(RectTransform rect)
    {
        LayoutRebuilder.ForceRebuildLayoutImmediate(rect);
        Vector3 vecScale = rect.localScale;
        float height = rect.rect.height;
        while (rect.rect.height == 0)
        {
            Debug.Log(rect.rect.height);
            LayoutRebuilder.ForceRebuildLayoutImmediate(rect);
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值