Cocos2dxのPageViewでは前/次ページ内容をチラ見せさせ出来無さそうでしたので、今回は少しコードを弄ってチラ見せ出来るようにしてみました。
環境
- Cocos2d-x v3.4-final
コード修正
通常、1枚のページサイズはPageViewのContextSizeと同じなっています。今回の修正は別途ページサイズを設定出来るようにし、内部でそのサイズ数を扱うよう変更します。
UIPageView.h
class CC_GUI_DLL PageView : public Layout { public: CC_SYNTHESIZE(Size, _pageSize, PageSize);
UIPageView.cpp
getContextSize().width を_pageSize.width に置換すれば良いだけです。一応変更箇所を抜粋しました。
float PageView::getPositionXByIndex(ssize_t idx)const { return (_pageSize.width * (idx-_curPageIdx)); } void PageView::updateAllPagesPosition() { (略) float pageWidth = _pageSize.width; (略) } void PageView::handleReleaseLogic(Touch *touch) { (略) float pageWidth = _pageSize.width; (略) }
利用方法
auto winSize = Director::getInstance()->getWinSize(); auto pageView = PageView::create(); pageView->setSize(winSize); pageView->setPageSize(Size(winSize.width * 0.5f, winSize.height)); this->addChild(pageView); (以下、pageViewにaddPageしていく処理を省略)