UGUI源码解析——ILayoutIgnorer
Posted Hello Bug.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UGUI源码解析——ILayoutIgnorer相关的知识,希望对你有一定的参考价值。
一:前言
挂载了实现ILayoutIgnorer接口的组件的对象可以设置不受布局系统控制,例如LayoutElement
实现ILayoutIgnorer接口的组件的作用是针对于布局组下的子对象,而不是针对于自身,例如给挂载了ContentSizeFitter组件的对象身上挂载LayoutElement组件并将ignoreLayout设置为true是没有作用的
二:源码解析
ignoreLayout:设置为true则此对象不再受布局系统控制
UGUI源码解析——LayoutGroup
在LayoutGroup类中实现了ILayoutElement接口的CalculateLayoutInputHorizontal方法,计算出了所有被布局系统所控制的对象并添加到了m_RectChildren列表中,HorizontalLayoutGroup、VerticalLayoutGroup,GridLayoutGroup设置布局时只会操作m_RectChildren列表中的对象
需要注意只有对象身上所有挂载的实现ILayoutIgnorer的组件中的ignoreLayout都为true才会不受布局系统控制,只要对象身上有一个组件上的ignoreLayout属性为false则它还会受布局系统控制
又因为只有在LayoutGroup类中引用到了ILayoutIgnorer接口,LayoutGroup类是作用于子布局元素的,所以实现ILayoutIgnorer接口的组件的作用是针对于布局组下的子对象,而不是针对于自身,例如给挂载了ContentSizeFitter组件的对象身上挂载LayoutElement组件并将ignoreLayout设置为true是没有作用的
以上是关于UGUI源码解析——ILayoutIgnorer的主要内容,如果未能解决你的问题,请参考以下文章