1CCTableView的使用,TableView响应和小格子tableView实现
1????????CCTableView的使用
| T26TableView.h |
| #ifndef __T26TableView_H__ #define __T26TableView_H__ ? #include "cocos2d.h" #include "cocos-ext.h" #include "TBack.h" USING_NS_CC; USING_NS_CC_EXT; ? class T26TableView :public TBack, public CCTableViewDataSource { public: ??? CREATE_FUNC(T26TableView); ??? bool init(); ??? static CCScene * scene(); ? ??? CCArray* _cells; ? ??? //獲取指定的CCTableViewCell ??? virtual CCTableViewCell* tableCellAtIndex(CCTableView *table,unsigned int idx) ??? { ??????? return (CCTableViewCell*)_cells->objectAtIndex(idx); ??? } ? ??? //獲取CCTableViewCell的個數 ??? virtual unsigned int numberOfCellsInTableView(CCTableView *table) ??? { ??????? return _cells->count(); ??? } ? ??? //獲得Cell的大小 ??? virtual CCSize tableCellSizeForIndex(CCTableView *table,unsigned int idx) { ??????? return cellSizeForTable(table); ??? } ? ??? virtual CCSize cellSizeForTable(CCTableView *table) { ??????? return CCDirector::sharedDirector()->getWinSize(); ??? } ? }; ? #endif |
| T26TableView.cpp |
| #include "T26TableView.h" ? CCScene *T26TableView::scene() { ??? CCScene * scene = CCScene::create(); ??? T26TableView * layer = T26TableView::create(); ??? scene->addChild(layer); ??? return scene; } ? bool T26TableView::init() { ??? TBack::init(); ? ??? CCSize winSize = CCDirector::sharedDirector()->getWinSize(); ? ??? _cells = CCArray::create(); ??? _cells->retain(); ??? for (inti = 0; i < 5; ++i) ??? { ??????? //創舉CCTableViewCell ??????? CCTableViewCell*cell = new CCTableViewCell; ??????? //放入存儲CCTableViewCell的CCArray中去 ??????? _cells->addObject(cell); ??????? cell->release(); ? ??????? //每個格子中添加精靈 ??????? CCSprite* sprite = CCSprite::create("HelloWorld.png"); ??????? cell->addChild(sprite); ??????? sprite->setPosition(ccp(winSize.width / 2,winSize.height / 2)); ??? } ? ??? //使用了回調 ??? CCTableView* view = CCTableView::create(this,winSize); ??? addChild(view); ??? //設置滾動的方向 ??? view->setDirection(kCCScrollViewDirectionHorizontal); ??? //從數據源重新加載,視圖將會被刷新 ??? view->reloadData(); ? ??? return true; } |
| 運行結果:
|
2 TableView響應和小格子tableView實現
| T26TableView.h |
| #ifndef __T26TableView_H__ #define __T26TableView_H__ ? #include "cocos2d.h" #include "cocos-ext.h" #include "TBack.h" USING_NS_CC; USING_NS_CC_EXT; ? class T26TableView :public TBack, public CCTableViewDataSource, public CCTableViewDelegate { public: ??? CREATE_FUNC(T26TableView); ??? bool init(); ??? static CCScene * scene(); ? ??? //數據源支持的虛函數 ??? CCArray* _cells; ? ??? //獲取指定的CCTableViewCell ??? virtual CCTableViewCell* tableCellAtIndex(CCTableView *table,unsigned int idx) ??? { ??????? return (CCTableViewCell*)_cells->objectAtIndex(idx); ??? } ? ??? //獲取CCTableViewCell的個數 ??? virtual unsigned int numberOfCellsInTableView(CCTableView *table) ??? { ??????? return _cells->count(); ??? } ? ??? //獲得Cell的大小,cctableView的某個格子的大小可以不一樣 ??? virtual CCSize tableCellSizeForIndex(CCTableView *table,unsigned int idx) { ??????? CCLog("順序是:idx = %d",idx); ??????? ??????? //當時第3個格子的時候相對其它的格子的空間大一下 ??????? if (idx == 2) ??????? { ??????????? return CCSize(80, 57); ??????? } ??????? ??????? return cellSizeForTable(table); ??? } ? ??? virtual CCSize cellSizeForTable(CCTableView *table) { ??????? return CCSize(57, 57); ??? } ? ??? //點擊代理函數 ??? virtual void tableCellTouched(CCTableView*table, CCTableViewCell*cell) ??? { ??????? CCLog("idx=%d",cell->getIdx()); ??? } ??? virtual void scrollViewDidScroll(CCScrollView*view){} ??? virtual void scrollViewDidZoom(CCScrollView*view){} }; ? #endif |
| T26TableView.cpp |
| #include "T26TableView.h" ? CCScene *T26TableView::scene() { ??? CCScene * scene = CCScene::create(); ??? T26TableView * layer = T26TableView::create(); ??? scene->addChild(layer); ??? return scene; } ? bool T26TableView::init() { ??? TBack::init(); ? ??? CCSize winSize = CCDirector::sharedDirector()->getWinSize(); ??? CCSize cellSize = CCSize(57, 57); ? ??? _cells = CCArray::create(); ??? _cells->retain(); ??? for (inti = 0; i < 5; ++i) ??? { ??????? //創舉CCTableViewCell ??????? CCTableViewCell*cell = new CCTableViewCell; ??????? //放入存儲CCTableViewCell的CCArray中去 ??????? _cells->addObject(cell); ??????? cell->release(); ? ??????? //每個格子中添加精靈 ??????? CCSprite* sprite = CCSprite::create("Icon.png"); ??????? cell->addChild(sprite); ??????? sprite->setPosition(ccp(cellSize.width / 2,cellSize.height / 2)); ??? } ? ??? //使用了回調 ??? CCTableView* view = CCTableView::create(this,CCSize(cellSize.width * 3,cellSize.height)); ??? addChild(view); ??? //設置滾動的方向 ??? view->setDirection(kCCScrollViewDirectionHorizontal); ??? //從數據源重新加載,視圖將會被刷新 ??? view->reloadData(); ??? view->setPosition(ccp(200, 200)); ? ??? // 點擊處理 ??? view->setDelegate(this); ? ??? return true; } |
| 運行結果:
|
| ? |
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的1CCTableView的使用,TableView响应和小格子tableView实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载到u盘的文件不见了怎么办啊 U盘上下
- 下一篇: 2 TileMapObject的使用