您的位置:首页 > 产品设计 > UI/UE

UI控件

2016-04-07 14:51 393 查看
16、UI控件

包含头文件

#include "ui/cocosGUI.h"

using namespace ui;

(1)Button(按钮)

.h里面声明方法

public:

    void uiButtonDemo();//button方法

    void buttonFunC(Ref* psender,Widget::TouchEventType e);//button的点击事件

.cpp里面的init函数中调用uiButtonDemo()方法

void HelloWorld::uiButtonDemo()

{

    Button* b=Button::create();

    b->loadTextureNormal("btn-about-normal.png");//正常显示的图片

    b->loadTexturePressed("btn-about-selected.png");//点击时的图片

    b->loadTextureDisabled("btn-about-disable.png");//不可点击的图片

   // b->loadTextures("正常时的图片", "点击时的图片");

    b->setPosition(Vec2(240,
160));//设置位置

    b->setTitleText("添加文字");

    b->setTitleFontName("设置字体");

    b->setTitleFontSize(28);//设置字体大小

    b->setTitleColor(Color3B(255,0,0));//设置颜色

    b->setEnabled(false);//设置是否可以点击 true可以,false不可以点击

    b->setBright(true);//设置是否添加不可点击图片,true是不添加,false是添加

    this->addChild(b);

    //添加点击事件

    b->addTouchEventListener(CC_CALLBACK_2(HelloWorld::buttonFunc,this));

    

}

 

bool key=false;

void HelloWorld::buttonFunC(Ref* psender,Widget::TouchEventType e)

{

    if (e==Widget::TouchEventType::BEGAN) {

        key=false;

        log("BEGAN");

    }

    else if (e==Widget::TouchEventType::MOVED)
{

        log("MOVED");

    }

    else

    {

        log("End");

    }

    

}

 

 

(2)Slider(滑块)

包含头文件

#include "cocos-ext.h"

using namespace extension;

auto slider=ControlSlider::create("",
"", "");

   slider->setMaximumAllowedValue(100);

    slider->setMinimumAllowedValue(0);

.h里面声明方法

public:

    void uiSliderDemo();

    void sliderFunC(Ref* ,Slider::EventType);

.cpp里面的init函数中调用uiSliderDemo()方法

void HelloWorld::uiSliderDemo()

{

    Slider* slider=Slider::create();

    slider->loadBarTexture("SliderBarFixed.png");//底部图片

    slider->loadSlidBallTextureNormal("SliderButton.png");//正常显示图片

    slider->loadSlidBallTexturePressed("SliderButton.png");//点击是图片

    slider->setPosition(Vec2(240,
160));

    this->addChild(slider);

    //添加事件

    slider->addEventListener(CC_CALLBACK_2(HelloWorld::sliderFunC,
this));

    slider->setPercent(50);//设置初始位置

}

void HelloWorld::sliderFunC(Ref* psender,Slider::EventType e)

{

    Slider* s=(Slider*)psender;

    log("%i",s->getPercent());//获取滑块的值

  

    

}

(3)LoadingBar(进度条)

.h里面声明方法

public:

    void uiLoadingBarDemo();

 

void HelloWorld::uiLoadingBarDemo()//显示加载或下载的进度

{

    LoadingBar* bar=LoadingBar::create();

    bar->loadTexture("loadingbar.png");

 

    bar->setPosition(Vec2(240,
160));

    this->addChild(bar);

    bar->setPercent(50);

}

(4)CheckBox(勾选框)

.h里面声明方法

public:

    void uiChechkBoxDemo();//选择

    void checkBoxFunc(Ref* psender,CheckBox::EventType e);

void HelloWorld::uiChechkBoxDemo()

{

    CheckBox* box=CheckBox::create("RadioButtonOff.png",
"RadioButtonOffPressed.png","RadioButtonOn.png","RadioButtonOffDisabled.png", "RadioButtonOnDisabled.png");//1
没有选中的正常显示的图片 2
没有选中的点击时候的图片 3
选中的正常显示的图片 4
没有选中 不可点击的图片 5选中的 不可点击的图片

//    CheckBox::create(const std::string &backGround, const std::string &backGroundSeleted, const std::string &cross, const std::string &backGroundDisabled, const std::string &frontCrossDisabled);

 

 

CheckBox* checkBox2 = CheckBox::create("check_box_normal.png",//未选中时的显示图片

"check_box_normal_press.png",//点击checkBox后触摸没有松开时的图片

"check_box_active.png",//选中时的显示图片

"check_box_normal_disable.png",//从选中到未选中切换过程中,触摸没有松开时的显示图片

"check_box_active_disable.png”);

 

    box->setPosition(Vec2(240,
160));

    this->addChild(box);

    box->setSelected(true);//设置选中状态

    box->setEnabled(false);

    box->setBright(false);

    box->addEventListener(CC_CALLBACK_2(HelloWorld::checkBoxFunc,
this));

}

void HelloWorld::checkBoxFunc(Ref* psender,CheckBox::EventType e)

{

    CheckBox* box=(CheckBox*)psender;

    if (box->isSelected()) {

        log("YES");

    }

    else

    {

        log("NO");

    }

        

                   

                   

                   

 }

(5)EditBox(编辑框)

.h里面声明方法,并且需要加上那个public EditBoxDelegate

public:

    void uiEditBoxDemo();    

     void editBoxEditingDidBegin(EditBox* editBox);

     void editBoxEditingDidEnd(EditBox* editBox);

     void editBoxTextChanged(EditBox* editBox,
const std::string& text);

     void editBoxReturn(EditBox* editBox);

 

void HelloWorld::uiEditBoxDemo()

{

    Scale9Sprite* s9=Scale9Sprite::create("textField.png");

    

    EditBox* box=EditBox::create(Size(240,60),
s9);

    

    box->setPosition(Vec2(240,
160));

    this->addChild(box);

    box->setPlaceHolder("please");//提示文字

   // box->setPlaceholderFont("Menlo", 60);

    box->setPlaceholderFontName("Menlo");

    box->setPlaceholderFontSize(60);//必须设置字体才能改变字体大小 先设置字体

    box->setPlaceholderFontColor(Color3B(255,0,0));

    

    box->setMaxLength(10);//最多输入个数

   box->setPlaceholderFont("Menlo",
60);

     box->setPlaceholderFontColor(Color3B(0,255,0));

    

    box->setInputFlag(cocos2d::ui::EditBox::InputFlag::PASSWORD);//密码显示

    box->setReturnType(EditBox::KeyboardReturnType::DONE);//键显示文字的设置

    //box->setInputMode(cocos2d::ui::EditBox::InputMode::PHONE_NUMBER);//出现相应输入的键盘

    box->setDelegate(this);

}

 void HelloWorld::editBoxEditingDidBegin(EditBox* editBox)

{

    log("editBoxEditingDidBegin");

}

 void HelloWorld::editBoxEditingDidEnd(EditBox* editBox)

{

    log("editBoxEditingDidEnd");

}

void HelloWorld::editBoxTextChanged(EditBox* editBox,
const std::string& text)

{

    log("editBoxTextChanged");

    log("%s",editBox->getText());

    

}

 void HelloWorld::editBoxReturn(EditBox* editBox)

{

    log("editBoxReturn");

}

(6)ImageView(图像视图)

(7)ScrollView(滑动视图)

auto vibleSize=Director::getInstance()->getVisibleSize();

    

    

    ScrollView* sc=ScrollView::create();

    sc->setContentSize(Size(200,200));

    sc->setInnerContainerSize(Size(480,320));

    sc->setDirection(ScrollView::Direction::BOTH);//设置滑动方向

    //默认回弹是关闭的

    sc->setBounceEnabled(true);

    //默认惯性滑动是开启的

    sc->setInertiaScrollEnabled(true);

    sc->addEventListener(CC_CALLBACK_2(HelloWorld::scrollviewFunc,
this));

    

    auto sprite=Sprite::create("HelloWorld.png");

    sprite->setAnchorPoint(Vec2(0,
0));

    sprite->setPosition(Vec2(0,
0));

    sc->addChild(sprite);//向内部窗口加子节点

    

    sc->setPosition(vibleSize/2);

    sc->scrollToBottomRight(2.0,
true);//减速,2.秒移动到窗口右下角

    addChild(sc);

(8)ListView(列表视图)

 ListView* list=ListView::create();

    list->setBackGroundImage("HelloWorld.png");//设置背景图片

    list->setDirection(ScrollView::Direction::VERTICAL);//设置方向NONE,

   // VERTICAL,纵向

    //HORIZONTAL,横向

   // BOTH

    list->setBounceEnabled(true);//弹性效果

    list->setContentSize(Size(480,640));//设置外部窗口大小

    list->setPosition(Vec2(120,
80));

    list->setItemsMargin(20);//设置条目之间的间隔

    addChild(list);

 

    Layout* layout=Layout::create();

    layout->setContentSize(Size(120,
30));

  

    Button* b=Button::create();

    b->setTag(101);

    b->loadTextureNormal("btn-about-normal.png");//正常显示的图片

    b->loadTexturePressed("btn-about-selected.png");//点击时的图片

    b->loadTextureDisabled("btn-about-disable.png");//不可点击的图片

    b->setScale9Enabled(true);

    b->setContentSize(Size(120,
30));

    b->setPressedActionEnabled(true);

    b->setZoomScale(0.5f);

    b->setTitleText("");

    b->setTitleFontName("Menlo");

    b->setTitleFontSize(28);//设置字体大小

    b->setTitleColor(Color3B(255,0,0));//设置颜色

    b->setPosition(Vec2(50,15));

    layout->addChild(b);

    list->setItemModel(layout);

    for (int i=0; i<100; i++) {

        list->pushBackDefaultItem();

    }

    for (int i=0; i<100; i++) {

        Button* b=(Button*)list->getItem(i)->getChildByTag(101);

        b->setTitleText(__String::createWithFormat("%i",i+1)->getCString());

        

    }

 

(9)Layout(布局层)

(10)PageView(布局层)

PageView* page=PageView::create();

    page->setContentSize(Size(480,320));//指定窗口大小

    for (int i=0; i<10; i++) {

        Layout* layout=Layout::create();//创建一个布局

        layout->setBackGroundImage("HelloWorld.png");//指定背景图片

        Button* b=Button::create();

        b->loadTextureNormal("btn-about-normal.png");//正常显示的图片

        b->loadTexturePressed("btn-about-selected.png");//点击时的图片

        b->loadTextureDisabled("btn-about-disable.png");//不可点击的图片

        b->setPosition(Vec2(240,
160));//设置位置

        b->setZoomScale(0.0);//点击是否放大1+0.5倍默认是0.1

        //添加点击事件

        b->addTouchEventListener([](Ref* ,Widget::TouchEventType e)

        {

            static bool key=false;

            if (e==Widget::TouchEventType::BEGAN) {

                key=false;

            }

            else if (e==Widget::TouchEventType::MOVED)

            {

                key=true;

            }

            else

            {

                if (!key) {

                    log("Helloworld");//跳转到另外场景

                }

            }

        });

        layout->addChild(b);

        __String* str=__String::createWithFormat("%i",i);

        Label* la=Label::createWithSystemFont(str->getCString(),
"",
32);

        la->setPosition(Vec2(120,
80));

        layout->addChild(la);

        page->addPage(layout);

        

    }

    page->scrollToPage(3);

    //page->removePage(cocos2d::ui::Layout *page)//移除页面

    //page->removePageAtIndex(ssize_t index)//移除指定页面

    //page->addPage(cocos2d::ui::Layout *page)//在最后添加页面

   // page->insertPage(cocos2d::ui::Layout *page, int idx)//插入页面

    page->setPosition(Vec2(120,
80));

    this->addChild(page);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: