当前位置: 首页 > 工具软件 > CrossApp > 使用案例 >

crossApp初级-CAView类-5

秦琦
2023-12-01

版本1.19

类说明 

视图类CAView是整个CrossApp引擎最基本的类,负责将各式各样的界面呈现出来,我们在App中所能看见的的一切界面其实就是一个个CAView的组合。CAView负责在屏幕上定义矩形区域,在展示用户界面及响应用户界面交互方面发挥关键作用。每个视图对象要负责渲染视图矩形区域中的内容,并响应该区域内发生的操作事件,视图是应用程序用户交互的重要机制。

    除了显示内容和处理事件之外,图还可以管理一个或多个子视图。我们可以在一个view上面添加多个子view,而作为父view,即父节点,负责管理其直接子视图,并根据需要调整他们的位置和尺寸,以及响应他们没有处理的事件。

基类

   CAResponder

属性

访问修饰符 属性名 说明
publicFrame相对于父视图的位置大小
publicBounds相对于自身的位置大小
publicCenterview的中点的frame

方法


访问修饰符 方法名 说明
publiccreate创建一个空view,默认Frame(0,0,0,0)
publiccreateWithFrame

创建一个view,并指定其Fram

e

publiccreateWithFrame创建一个view,并指定FrameColor
publiccreateWithCenter

创建一个view,并设置其Cente

r

publiccreateWithCenter创建一个view,并设置其CenterColor
publiccreateWithColor创建一个view,并指定Color,默认Frame(0,0,0,0)
publicaddSubview

将子视图添加进当前视图


publicinsertSubView将子视图添加进当前视图,并指定一个Z轴值。

属性介绍


Frame

类型:CCRect

解释:确定view在屏幕上显示的位置和大小,参考的是父视图的坐标系统,frame属性是view及其子类共有属性CCRect包括两个成员,一个是起点坐标origin,另一个是宽高size,创建一个view必须指定Frame,否则看不见任何效果。如果只想改变view的坐标,不需要改变view的大小,则可采用setFrameOrigin方法来进行设置,get/set{}

    Bounds

    类型:CCRect

    解释:view在自身坐标系统中的位置和大小,参考的是自身的坐标系统,CCRectorigin值永远都是(0,0),bounds属性是view及其子类共有属性。在设置frame时,bounds也确定,其值等于frame的值。boundsframe是有区别的,frame的值会随着view的缩放操作改变,bounds的值则不会改变get/set{}

    Center

    类型:CCRect

    解释:view的中心点在屏幕上的位置,CrossApp采用的坐标系是屏幕坐标系,即左上角为原点,向右和向下分别对应XY轴。在CrossApp中我们确定一个view的位置,是通过originsize来设定的,为了方便,这里可以直接使用Centerview的中心点设置在我们想要的位置。如果只想改变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);
this->getView()->addSubview(view);

2.
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视图。

 类似资料: