crossApp初级-CALabel标签-4

CALabel 类

作用:

标签文字,用于显示文本

版本1.19

基类

CAVIEW

访问修饰符                 属性名                               说明 protected                  Text                                label的文本内容
protected                  fontName                       label的字体
protected                  fontSize                          label的字体大小
protected                  Color                              label的字体颜色
protected                  VerticalTextAlignmet       文本的竖直对齐方式
protected                  TextAlignment                文本的水平对齐方式
protected                  NumberOfLine                label的行数

protected                  LabelSize                        label当前的size


一.标签类的创建,目前只支持使用 createWitchFrame(...),createWitchCenter(...) 来创建CALabel类对象


void FirstViewController::viewDidLoad()
{
    //创建
    CALabel* calable1 = CALabel::createWithFrame(CCRect(100, 100, 200, 400)); //不能使用create方法来创建CALabel对象

    calable1->setText("HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld");
    //字体显示的大小
    calable1->setFontSize(40);
    //为了不同屏幕的适配,设置大小的时候,可以使用px,绝对像素
    calable1->setFontSize(_px(50));    //效果就是在ipad 上和iphone 等设备上字体的大小都是一样的

    //颜色
    calable1->setColor(CAColor_blue);
    //自定义字体类型
    calable1->setFontName("fonts/Marker Felt.ttf");

    //设置对齐,是以 frame 里面设置的 方形大小来对齐的标准的。
    calable1->setTextAlignment(CATextAlignmentCenter);     //alignment  对齐方式
    calable1->setVerticalTextAlignmet(CAVerticalTextAlignmentTop);   //vertical  垂直

    //设置文本行数
    calable1->setNumberOfLine(4);

    //win32下中文字符显示的方法
    CALabel* calable2 = CALabel::createWithFrame(CCRect(100, 400, 200, 40));
    calable2->setText(UTF8("你好!"));  //win32 下显示中文,会出现乱码或者不显示,可能有2个问题:1.字体类型中没有中文字符。2.win32下需要转码
    getView()->addSubview(calable2);

    getView()->addSubview(calable1);//事件驱动渲染模式,只有这行代码执行的时候,才会调用渲染程序
}

注意:

1.以上的红色属性,CALabel 的对其方式水平和竖直分开设置。使用 createWithFrame()创建的CALable对象,使用这两个属性,对齐标准是创建的CCRect使用createWithCenter() 创建的对象,对象的中心坐标为设置的X,Y的坐标

如果 想改变CALable 的位置坐标,可以使用 calable1->setFrameOrigin(CCPoint(0,100));来实现。(坐标是相对于父CAView来设置的坐标)

2.CALabel 创建方法继承CAView 类,2中实例化对象的方式:

createWithFrame(),createWithCenter(),CAView 拥有父类CAView的 create和createWithColor()方法,但是,不能用来创建CALabel类对象,即:不能实例化CALabel类对象。

使用createWithCenter()来创建 label 之后,使用setCenter()来设置会产生不是我们要的坐标,因为没有水平对齐的问题,需要和setTextAlignment(CATextAlignmentCenter);一起使用。

如果先使用createWithCenter()来创建 label 之后,使用setFrameOrigin()来设置会产生不是我们要的坐标,应该是bug。

建议:使用createWithFrame 来创建 ,然后用setFrameOrigin确定屏幕的位置。

或者使用createWithCenter()定位,(可以结合setVerticalTextAlignmet()和setTextAlignment()使用)。

CrossApp 使用的是 屏幕坐标系,即:左上角为(0,0),向下为Y正,向右为X正

CAView 对象中增加子CAView对象的时候,坐标系统会以父CAView为新的坐标系统,即:以父CAView的左上角为(0,0)坐标。

3.Label的行数:
其实Label行数是受Label的范围的影响,假如你设置的Frame太小,你超出Frame范围的行数是不被显示的。
例如:Frame的范围只够显示2行,那么NumberOfLine设置比2大也是最多显示2行。
4.win开放中文字符:
假如是是在win下开发CrossApp那么,label->setText("中文");这样直接设置中文字符,CALabel的显示不正常的。
我们可以设置转为UTF8格式,格式如下:label->setText(UTF8("你好,CALable"));  

你可能感兴趣的:(crossApp初级-CALabel标签-4)