#include "HelloWorldScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; #define READD 0 Scene* HelloWorld::createScene() { return HelloWorld::create(); } // Print useful error message instead of segfaulting when files are not there. static void problemLoading(const char* filename) { printf("Error while loading: %s\n", filename); printf("Depending on how you compiled you might have to add 'Resources/' in front of filenames in HelloWorldScene.cpp\n"); } // on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Scene::init() ) { return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCSize mysize = CCDirector::sharedDirector()->getVisibleSize(); //横向CCTableView TableView* tableView1 = TableView::create(this, Size(1136, 640)); tableView1->setColor(Color3B(255, 0, 0)); // tableView1->setPosition(1136/2, 640/2); tableView1->setPosition(0, 0); this->addChild(tableView1, 1); //属性设置 tableView1->setBounceable(true); //关闭弹性效果 tableView1->setDirection(ScrollView::Direction::HORIZONTAL); //横向 tableView1->setDelegate(this); //委托代理 tableView1->reloadData(); //加载数据 tableView1->setSwallowTouches(false); auto bg = cocos2d::LayerColor::create(Color4B(128, 128, 128, 255)); this->addChild(bg); return true; } Size HelloWorld::tableCellSizeForIndex(TableView* table, ssize_t idx) { return Size(50, 640); } Size HelloWorld::cellSizeForTable(TableView* table) { return Size(50, 640); } TableViewCell* HelloWorld::tableCellAtIndex(TableView *table, ssize_t idx) { char number[10]; //显示label标签的数字 sprintf(number, "%02zd", idx); TableViewCell* cell = table->dequeueCell(); if(!cell) { cell = new TableViewCell(); // cell->autorelease(); //自动释放资源 auto label = Label::createWithTTF(number, "fonts/Marker Felt.ttf", 24); label->setPosition(25, 120); cell->addChild(label, 0, 2); auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); if (closeItem == nullptr || closeItem->getContentSize().width <= 0 || closeItem->getContentSize().height <= 0) { problemLoading("'CloseNormal.png' and 'CloseSelected.png'"); } else { } // create menu, it's an autorelease object auto menu = Menu::create(closeItem, NULL); menu->setPosition(25, 120); cell->addChild(menu, 1, 3); } else { Label *label = (Label *)cell->getChildByTag(2); label->setString(number); #if READD CCLOG("%s", number); Menu *menu = (Menu *)cell->getChildByTag(3); menu->removeFromParent(); auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); if (closeItem == nullptr || closeItem->getContentSize().width <= 0 || closeItem->getContentSize().height <= 0) { problemLoading("'CloseNormal.png' and 'CloseSelected.png'"); } else { } // create menu, it's an autorelease object auto menu2 = Menu::create(closeItem, NULL); menu2->setPosition(25, 120); cell->addChild(menu2, 1, 3); #endif } return cell; } ssize_t HelloWorld::numberOfCellsInTableView(TableView *table) { return 10; } void HelloWorld::tableCellTouched(TableView* table, TableViewCell* cell) { CCLOG("tableCellTouched %zd", cell->getIdx()); } void HelloWorld::tableCellHighlight(TableView* table, TableViewCell* cell) { CCLOG("tableCellHighlight %zd", cell->getIdx()); } void HelloWorld::tableCellUnhighlight(TableView* table, TableViewCell* cell) { CCLOG("tableCellUnhighlight %zd", cell->getIdx()); } void HelloWorld::tableCellWillRecycle(TableView* table, TableViewCell* cell) { CCLOG("tableCellWillRecycle %zd", cell->getIdx()); } void HelloWorld::menuCloseCallback(Ref* pSender) { CCLOG("exit"); }