日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1CCTableView的使用,TableView响应和小格子tableView实现

發(fā)布時間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1CCTableView的使用,TableView响应和小格子tableView实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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的個數(shù)

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

??? {

??????? //創(chuàng)舉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));

??? }

?

??? //使用了回調(diào)

??? CCTableView* view = CCTableView::create(this,winSize);

??? addChild(view);

??? //設(shè)置滾動的方向

??? view->setDirection(kCCScrollViewDirectionHorizontal);

??? //從數(shù)據(jù)源重新加載,視圖將會被刷新

??? view->reloadData();

?

??? return true;

}

運行結(jié)果:


2 TableView響應和小格子tableView實現(xiàn)

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

?

??? //數(shù)據(jù)源支持的虛函數(shù)

??? CCArray* _cells;

?

??? //獲取指定的CCTableViewCell

??? virtual CCTableViewCell* tableCellAtIndex(CCTableView *table,unsigned int idx)

??? {

??????? return (CCTableViewCell*)_cells->objectAtIndex(idx);

??? }

?

??? //獲取CCTableViewCell的個數(shù)

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

??? }

?

??? //點擊代理函數(shù)

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

??? {

??????? //創(chuàng)舉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));

??? }

?

??? //使用了回調(diào)

??? CCTableView* view = CCTableView::create(this,CCSize(cellSize.width * 3,cellSize.height));

??? addChild(view);

??? //設(shè)置滾動的方向

??? view->setDirection(kCCScrollViewDirectionHorizontal);

??? //從數(shù)據(jù)源重新加載,視圖將會被刷新

??? view->reloadData();

??? view->setPosition(ccp(200, 200));

?

??? // 點擊處理

??? view->setDelegate(this);

?

??? return true;

}

運行結(jié)果:


?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的1CCTableView的使用,TableView响应和小格子tableView实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。