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);