阅读背景:

基于cocoStudio的UIListView的可以左右滑动翻页的ListView

来源:互联网 

//WidgetSlideListView.h

class WidgetEaseInListView : public cocos2d::gui::UIListView
{
public:
	static WidgetEaseInListView* create(cocos2d::gui::UIListView* pAnthor=NULL);
	void doEaseIn(bool bRight2Left=true);

protected:
	virtual void copySpecialProperties(cocos2d::gui::Widget* model);

protected:
	virtual void onEaseInOver();
	virtual void startEaseIn(bool bRight2Left);
	virtual void tick(float delta);

protected:
	bool m_bRight2Left;
};

class SlideListViewDataSource
{
public:
	virtual size_t getTotalItemNum() = 0;
	virtual size_t getEveryPageItemNum() = 0;
	virtual cocos2d::gui::UIWidget* getWidgetAt(size_t nIdx) = 0;
	virtual void onPageTurnOver(size_t nCurrentPage){}
};

class WidgetSlideListView : public WidgetEaseInListView
{
	enum SlideDir
	{
		eSlideDir_None = 0,
		eSlideDir_Horizon_Left,
		eSlideDir_Horizon_Right,
		eSlideDir_Virtical
	};

protected:
	WidgetSlideListView();
	virtual ~WidgetSlideListView();

public:
	static WidgetSlideListView* create(SlideListViewDataSource* pDelegate,cocos2d::gui::UIListView* pAnthor=NULL);

public:
	void		setDelegate(SlideListViewDataSource* pDelegate){ m_pDelegate = pDelegate; }
	void		reloadData();
	size_t		getCurrentPage()const{ return m_nCurrentPage; }
	void		turnToPage(unsigned int nPage);

protected:
	virtual bool init();
	virtual void handleMoveLogic(const cocos2d::CCPoint &touchPoint);
	virtual void handleReleaseLogic(const cocos2d::CCPoint &touchPoint);    
	void		scheduleTurnPage(float t);


protected:
	SlideListViewDataSource* m_pDelegate;
	size_t		m_nCurrentPage;
	SlideDir	m_eSlideDir;
	cocos2d::CCPoint		m_BackPos;
};
class WidgetEaseI



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: