# 容器类组件开发指导 - [UIViewGroup](#section145471898812) - [使用场景](#section0916112362216) - [接口说明](#section12641756192212) - [开发步骤](#section5412161692311) - [UIScrollView](#section174961523161315) - [使用场景](#section8937101902413) - [接口说明](#section14789133142420) - [开发步骤](#section1769754422417) 容器类组件,指能包含其它UI组件的组件,容器类组件继承于UIViewGroup(带Add方法),基于实际组件的使用场景,将需要增加其他子组件的组件,放置到容器类继承结构下。如UIAnalogClock内,通常会Add需要的计步信息,时分秒图标等。 **图 1** 普通容器类组件结构  RootView、UIAbstractScroll、UIPicker组件从UIViewGroup继承,UIList、UIScrollView、UISwipeView组件从UIAbstractScroll继承。 ## UIViewGroup ## 使用场景 UIViewGroup是容器类组件基类,实现增加、删除、插入等操作,通过增加方法可以添加子组件。普通容器类组件子组件需要设置位置信息,位置信息为相对父组件的相对坐标。组件树结构如下图: **图 2** 组件树结构示意图  往根节点rootView里添加ViewGroup1容器组件和View1组件,往ViewGroup1容器组件里再添加View2组件和ViewGroup2容器组件,在View1之后添加View3组件。 - 关于渲染:容器类组件在渲染时会遍历所有子组件OnDraw方法,以达到刷新所有组件的目的。 - 关于坐标:子组件位置信息为相对父组件的相对坐标,系统在渲染时计算绝对坐标并显示。 - 关于树结构遍历:UIViewGroup提供如下方法实现遍历、查找、管理组件树。 ## 接口说明 **表 1** ViewGroup接口说明
virtual void GetTargetView(const Point& point, UIView** last) |
|
void RegisterScrollListener(OnScrollListener* scrollListener) |
|