CCTableView 之CCMenuItemToggle 多选实现 (一)

2014-11-24 00:43:53 · 作者: · 浏览: 11

[cpp]
//TableViewAddToggle.h

//TableViewAddToggle.h
[cpp]
#ifndef __TABLEVIEW_TOGGLE_H__
#define __TABLEVIEW_TOGGLE_H__

#pragma once
#include "common.h"
#define MAXNUM 180

class CTableViewAddToggle :public cocos2d::CCLayer,public cocos2d::extension::CCTableViewDataSource, public cocos2d::extension::CCTableViewDelegate
{
private:

CCTableViewCell *m_pCell;

CCTableView* m_pTableView;

CCMenu *m_pSelectMenu;

bool m_bIsSelect[MAXNUM];

CCMenu* m_pMenuSelect[MAXNUM];

CCMenuItemToggle* m_pToggleItem[MAXNUM];

public:

CTableViewAddToggle(void);

void onSelect(CCObject* pSender);

virtual void onEnter();

virtual void onExit();

virtual void scrollViewDidScroll(cocos2d::extension::CCScrollView* view){};

virtual void scrollViewDidZoom(cocos2d::extension::CCScrollView* view){};

virtual void tableCellTouched(cocos2d::extension::CCTableView* table, cocos2d::extension::CCTableViewCell* cell);

virtual cocos2d::CCSize cellSizeForTable(cocos2d::extension::CCTableView *table);

virtual cocos2d::extension::CCTableViewCell* tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx);

virtual unsigned int numberOfCellsInTableView(cocos2d::extension::CCTableView *table);

CREATE_FUNC(CTableViewAddToggle);
};

#endif

#ifndef __TABLEVIEW_TOGGLE_H__
#define __TABLEVIEW_TOGGLE_H__

#pragma once
#include "common.h"
#define MAXNUM 180

class CTableViewAddToggle :public cocos2d::CCLayer,public cocos2d::extension::CCTableViewDataSource, public cocos2d::extension::CCTableViewDelegate
{
private:

CCTableViewCell *m_pCell;

CCTableView* m_pTableView;

CCMenu *m_pSelectMenu;

bool m_bIsSelect[MAXNUM];

CCMenu* m_pMenuSelect[MAXNUM];

CCMenuItemToggle* m_pToggleItem[MAXNUM];

public:

CTableViewAddToggle(void);

void onSelect(CCObject* pSender);

virtual void onEnter();

virtual void onExit();

virtual void scrollViewDidScroll(cocos2d::extension::CCScrollView* view){};

virtual void scrollViewDidZoom(cocos2d::extension::CCScrollView* view){};

virtual void tableCellTouched(cocos2d::extension::CCTableView* table, cocos2d::extension::CCTableViewCell* cell);

virtual cocos2d::CCSize cellSizeForTable(cocos2d::extension::CCTableView *table);

virtual cocos2d::extension::CCTableViewCell* tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx);

virtual unsigned int numberOfCellsInTableView(cocos2d::extension::CCTableView *table);

CREATE_FUNC(CTableViewAddToggle);
};

#endif

[cpp]
//TableViewAddToggle

//TableViewAddToggle
[cpp]
#include "CTableViewAddToggle .h"

#define BOXHEIGHT 100

#define BOXNUM 180

#define TABLE_SPACE 15


CTableViewAddToggle ::CTableViewAddToggle ()
{
m_bIsSelect[MAXNUM]=false;
}
void CTableViewAddToggle ::onEnter()
{
CCLayer::onEnter();

m_pTableView = CCTableView::create(this, CCSizeMake(SCEEN_WIDTH, (BOXHEIGHT*BOXNUM)+TABLE_SPACE*4));

m_pTableView->setDirection(kCCScrollViewDirectionVertical);

m_pTableView->setPosition(ccp( ORIGIN.x, WINSIZE.height/2 + ORIGIN.y-BOXHEIGHT*2.9f));

m_pTableView->setDelegate(this);

m_pTableView->setVerticalFill