版本1.19
类说明
视图类CAView是整个CrossApp引擎最基本的类,负责将各式各样的界面呈现出来,我们在App中所能看见的的一切界面其实就是一个个CAView的组合。CAView负责在屏幕上定义矩形区域,在展示用户界面及响应用户界面交互方面发挥关键作用。每个视图对象要负责渲染视图矩形区域中的内容,并响应该区域内发生的操作事件,视图是应用程序用户交互的重要机制。
除了显示内容和处理事件之外,视图还可以管理一个或多个子视图。我们可以在一个view上面添加多个子view,而作为父view,即父节点,负责管理其直接子视图,并根据需要调整他们的位置和尺寸,以及响应他们没有处理的事件。
基类
CAResponder
属性
访问修饰符 | 属性名 | 说明 |
public | Frame | 相对于父视图的位置大小 |
public | Bounds | 相对于自身的位置大小 |
public | Center | view的中点的frame |
方法
访问修饰符 | 方法名 | 说明 |
public | create | 创建一个空view,默认Frame为(0,0,0,0) |
public | createWithFrame | 创建一个view,并指定其Fram e |
public | createWithFrame | 创建一个view,并指定Frame和Color |
public | createWithCenter | 创建一个view,并设置其Cente r |
public | createWithCenter | 创建一个view,并设置其Center和Color |
public | createWithColor | 创建一个view,并指定Color,默认Frame为(0,0,0,0) |
public | addSubview | 将子视图添加进当前视图
|
public | insertSubView | 将子视图添加进当前视图,并指定一个Z轴值。 |
属性介绍
Frame
类型:CCRect
解释:确定view在屏幕上显示的位置和大小,参考的是父视图的坐标系统,frame属性是view及其子类共有属性。CCRect包括两个成员,一个是起点坐标origin,另一个是宽高size,创建一个view必须指定Frame,否则看不见任何效果。如果只想改变view的坐标,不需要改变view的大小,则可采用setFrameOrigin方法来进行设置,get/set{}
Bounds
类型:CCRect
解释:view在自身坐标系统中的位置和大小,参考的是自身的坐标系统,CCRect的origin值永远都是(0,0),bounds属性是view及其子类共有属性。在设置frame时,bounds也确定,其值等于frame的值。bounds和frame是有区别的,frame的值会随着view的缩放操作改变,bounds的值则不会改变,get/set{}。
Center
类型:CCRect
解释:view的中心点在屏幕上的位置,CrossApp采用的坐标系是屏幕坐标系,即左上角为原点,向右和向下分别对应X和Y轴。在CrossApp中我们确定一个view的位置,是通过origin和size来设定的,为了方便,这里可以直接使用Center将view的中心点设置在我们想要的位置。如果只想改变view的坐标,不需要改变view的大小,则可采用setFrameOrigin方法来进行设置,get/set{}。
实例:
1. CAView* view = CAView::createWithFrame(CCRect(300,300,200,200),ccc4(255,0,0,255)); view->setCenter(CCRect(winRect.size.width*0.5,winRect.size.height*0.5,0,0)); view->setColor(ccGREEN);2.this->getView()->addSubview(view);
CAView* view1 = CAView::createWithColor(ccc4(255,0,0,255)); view1->setCenter(CCRect(600, 400,200, 200));其他的属性:this->getView()->addSubview(view);
Z轴,CAView 的遮挡关系,view的透明度,view的缩放比例,是否可见,Rotation 旋转,Tag 标签,属性一般使用set..和get..方法设置和获取。
常用的方法:
virtual voidaddSubview(CAView * child),virtual voidinsertSubview(CAView* subview, int z),
CAView *getSubviewByTag(int tag),virtual CCArray*getSubviews(),
unsigned intgetSubviewsCount(void) const,返回一个unsigned int类型的值,用于标识当前子视图的个数。
virtual voidremoveFromSuperview(),virtual voidremoveSubview(CAView* subview),
virtual voidremoveSubviewByTag(int tag),virtual voidremoveAllSubviews(),删除所有自CAView视图。