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的主要内容,如果未能解决你的问题,请参考以下文章

UGUI源码解析——LayoutElement

UGUI源码解析——LayoutElement

UGUI源码解析——总览

UGUI源码解析——ICanvasElement

UGUI源码解析——IMeshModifier

UGUI源码解析——ICanvasElement