ListView

1、列表视图可以实现在一个区域内,有多个条目相同的信息相似的格式上下滚动。

2、

ListView * lv = ListView::create();
    lv->setDirection(SCROLLVIEW_DIR_VERTICAL); //设置滚动方向为垂直方向
    lv->setTouchEnabled(true);    //可触摸
    lv->setBounceEnabled(true);    //可反弹
    lv->setBackGroundImage("res/B.png");
    lv->setBackGroundImageScale9Enabled(true);
    lv->setAnchorPoint(Vec2(0.5, 0.5));
    lv->setSize(Size(400,300));
    lv->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
    lv->addEventListenerListView(this, listvieweventselector(HelloWorld::OnListView));
    addChild(lv);

    Button * default_Button = Button::create("res/ImageItem.png", "res/ImageItem.png");
    default_Button->setAnchorPoint(Vec2(0.5, 0.5));
    default_Button->addTouchEventListener(this, SEL_TouchEvent(&HelloWorld::OnTouchEventCallBack));
    default_Button->setName("Title Button");

    Layout * default_item = Layout::create();    //一个布局,加载ListView中的Item,每一个ListView的Item都是Layout、
    default_item->setTouchEnabled(true);
    default_item->setSize(default_Button->getSize());
    CCPoint temp = default_item->getSize();

    default_Button->setPosition(default_item->getSize() / 2.0f);
    default_item->addChild(default_Button);

    lv->setItemModel(default_item);    //定义模型,所有缺省的条目都会以default_item进行填充
                                    //在之后我们就可以添加缺省样式
    for (int i = 0; i < 5; ++i)
        lv->pushBackDefaultItem(); //添加默认的缺省条目,缺省条目就是我们上面lv->setItemModel(default_item);
                                    //这句话所设定的Layout,这个是我们自己来设定的。
    for (int i = 0; i < 5; ++i)
        lv->insertDefaultItem(1);    //也可以在指定的位置insert缺省条目。

    Vector<Widget *>& items = lv->getItems();
    for (int i = 0; i < items.size(); ++i)
    {
        Widget * item = lv->getItem(i);
        Button * button = (Button *)(item->getChildByName("Title Button"));
        button->setContentSize(Size(button->getSize().width, button->getSize().height * 2));
        int index = lv->getIndex(item);
        button->setTitleText(StringUtils::format("btn%d", i + 1));
    }

    lv->removeLastItem();
    int item_count = items.size();
    lv->removeItem(item_count - 1); //remove指定的条目。
    lv->setItemsMargin(2.0f);//设置两个条目之间的间隔

    for (int i = 0; i < 5; ++i)
    {
        Button * button_4 = Button::create("4.png", "4.png");
        button_4->setName("Button_4");
        button_4->setSize(default_Button->getSize());
        button_4->addTouchEventListener(this, SEL_TouchEvent(&HelloWorld::OnTouchEventCallBack));

        Layout * layout1 = Layout::create();
        layout1->setSize(button_4->getSize());
        button_4->setPosition(layout1->getSize() / 2.0f);
        layout1->addChild(button_4);
        lv->pushBackCustomItem(layout1);
    }

3、RichText

RichText * _richText = RichText::create();
    _richText->ignoreContentAdaptWithSize(false);
    _richText->setSize(Size(100, 100));

    RichElementText * re1 = RichElementText::create(1, Color3B::WHITE, 255, "This color is white.", "Helvetica", 10);
    RichElementText * re2 = RichElementText::create(2, Color3B::YELLOW, 255, "And This is yellow.", "Helvetica", 10);
    RichElementText * re3 = RichElementText::create(3, Color3B::BLUE, 255, "This one is blue.", "Helvetica", 10);
    RichElementText * re4 = RichElementText::create(4, Color3B::GREEN, 255, "And green.", "Helvetica", 10);
    RichElementText * re5 = RichElementText::create(5, Color3B::RED, 255, "Last one is red.", "Helvetica", 10);

    RichElementImage * reimg = RichElementImage::create(6, Color3B::WHITE, 255, "res/sheng.png");

    RichElementText * re6 = RichElementText::create(7, Color3B::RED, 255, "Last one is r1111111111111111111111.", "Helvetica", 10);

    
    _richText->pushBackElement(re1);
    _richText->insertElement(re2, 1);
    _richText->pushBackElement(re3);
    _richText->pushBackElement(reimg);

    _richText->pushBackElement(re4);
    _richText->pushBackElement(re5);
    _richText->pushBackElement(re6);

    _richText->setPosition(visibleSize / 2.0f);
    _richText->setLocalZOrder(10);
    addChild(_richText);

 

posted @ 2017-10-20 15:36  _xiaohaige  阅读(201)  评论(0编辑  收藏  举报