使用cocostudio UI编辑,并实现列表。
参照testcpp里的ExtensionsTest/CocoStudioGUITest/UIListViewTest,对其理解如下:
先初始化一个元素指针default_button:
UIButton* default_button = UIButton::create();
default_button->setName("TextButton");
default_button->setTouchEnabled(true);
default_button->loadTextures("cocosgui/backtotoppressed.png", "cocosgui/backtotopnormal.png", "");
loadTextures为点击前后图片的切换;如果不是用图片加载的,而是用.ExportJson或.Json格式的,则通过如下方式加载:
ul_layer = UILayer::create();
ly_widget = dynamic_cast<UILayout*>( GUIReader::shareReader()->widgetFromJsonFile("Export/NewProject_1/NewProject_1.ExportJson") );
ul_layer->addWidget( ly_widget );
UIButton* default_button = (UIButton*)(ul_layer->getWidgetByName("button_template"));
再将其反复添加进listview(pushBackCustomItem这是添加的意思;而insertCustomItem是插入,其参数多一个插入位置):
for (int i = 0; i < count; ++i)
{
UIButton* custom_button = UIButton::create();
custom_button->setName("TextButton");
custom_button->setTouchEnabled(true);
custom_button->loadTextures("cocosgui/button.png", "cocosgui/buttonHighlighted.png", "");
custom_button->setScale9Enabled(true);
custom_button->setSize(default_button->getSize());
Layout *custom_item = Layout::create();
custom_item->setSize(custom_button->getSize());
custom_button->setPosition(ccp(custom_item->getSize().width / 2, custom_item->getSize().height / 2));
custom_item->addChild(custom_button);
listView->pushBackCustomItem(custom_item);
}