当前位置:K88软件开发文章中心编程语言APP编程CrossApp → 文章内容

CAPageView(页面切换)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 13:52:06

由 ?﹏???ζ???﹏﹏? 创建, 最后一次修改 2016-09-07 类说明CAPageView用于实现分页、翻页效果。CAPageView为我们提供了横向和竖直两个方向的样式。我也可以通过继承CAPageViewDelegate来实现对CAPageView的监听。CAPageView 属性(点击查看方法介绍)属性说明PageViewDirection页面浏览方向PageViewDelegate页面视图代表CurrPage当前页Spacing间距CAPageView 方法(点击查看方法介绍)方法说明createWithFrame创建,并指定其Frame,默认Frame为(0,0,0,0)createWithCenter创建,并指定其Center,默认Center为(0,0,0,0)setCurrPage设置显示指定页getPageCount获取页面总数setViews添加存放View的CADeque容器setViews添加存放View的CAVector容器getSubViewAtIndex通过索引获取子视图setShowsScrollIndicators设置显示滚动条init初始化我来看一下代码实例:首先我们需要继承CAPageViewDelegate实现监听函数。我们在.h文件中添加如下代码:#include <iostream>#include "CrossApp.h" USING_NS_CC; class FirstViewController : public CAViewController, public CAPageViewDelegate{ public: FirstViewController(); virtual ~FirstViewController(); //切换开始时调用 virtual void pageViewDidBeginTurning(CAPageView* pageView); //切换结束时调用 virtual void pageViewDidEndTurning(CAPageView* pageView); //选择当前的切换页时调用 virtual void pageViewDidSelectPageAtIndex(CAPageView* pageView, unsigned int index, const DPoint& point);protected: void viewDidLoad(); void viewDidUnload(); };然后在.cpp中实现逻辑:void FirstViewController::viewDidLoad(){ //生命一个CAVector作为添加到PageView的容器 CAVector<CAView*> viewVector; //获得屏幕的rect DRect winRect = this->getView()->getBounds(); //创建CALabel CALabel* labelView = CALabel::createWithFrame(winRect); //设置为居中 labelView->setTextAlignment(CATextAlignmentCenter); labelView->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter); labelView->setFontSize(75); //设置文本内容 labelView->setText(UTF8("第一个View")); //创建CAImageView CAImageView* imageView = CAImageView::createWithImage(CAImage::create("HelloWorld.png")); //设置显示区域 imageView->setFrame(winRect); //创建一个蓝色的View CAView* view = CAView::createWithColor(CAColor_blue); //设置显示区域 view->setFrame(winRect); //创建CALabel CALabel* lastLabel = CALabel::createWithFrame(winRect); //设置居中 lastLabel->setTextAlignment(CATextAlignmentCenter); lastLabel->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter); lastLabel->setFontSize(75); //设置显示文本 lastLabel->setText(UTF8("最后一个View")); //将lastLabel添加到view view->addSubview(lastLabel); //将上面的三个控件放入到CAVector容器内 viewVector.pushBack(labelView); viewVector.pushBack(imageView); viewVector.pushBack(view); /*创建一个CAPageView并设置为水平滚动 CAPageViewDirectionHorizontal:水平 CAPageViewDirectionVertical:竖直 */ CAPageView* pageViewTest = CAPageView::createWithCenter(DRect(winRect.size.width*0.5, winRect.size.height*0.5, winRect.size.width, winRect.size.height), CAPageView::CAPageViewDirectionHorizontal); //设置监听 pageViewTest->setPageViewDelegate(this); //将CAVector添加到pageViewTest pageViewTest->setViews(viewVector); pageViewTest->getPageCount(); //将pageViewTest添到屏幕显示 this->getView()->addSubview(pageViewTest); } void FirstViewController::viewDidUnload(){ // Release any retained subviews of the main view. // e.g. self.myOutlet = nil;} void FirstViewController::pageViewDidBeginTurning(CAPageView* pageView){ CCLog("Begin--->");} void FirstViewController::pageViewDidEndTurning(CAPageView* pageView){ CCLog("End--->");} void FirstViewController::pageViewDidSelectPageAtIndex(CAPageView* pageView, unsigned int index, const DPoint& point){ CCLog("Index:%d",index);}我们创建了一个含有三个CAView的CAPageView,横向滑动可以切换到不同的CAView,在我们切换时候会调用pageViewDidBeginTurning函数和pageViewDidEndTurning函数,当我们点击某个页面的时候pageViewDidSelectPageAtIndex会被调用。CAPageView 属性说明PageViewDirection类型:CAPageViewDirection解释:页面浏览方向。get{}。    PageViewDelegate类型:CAPageViewDelegate*解释:页面视图代表。set/get{}。CurrPage类型:int解释:当前页。get{}。Spacing类型:int解释:间距。set/get{}。CAPageView 方法说明static CAPageView* createWithFrame(const CCRect& rect, const CAPageViewDirection& type);返回值:CAPageView*参数:类型参数名说明CCRect&rect大小CAPageViewDirection&type类型解释:创建,并指定其Frame,默认Frame为(0,0,0,0)    static CAPageView* createWithCenter(const CCRect& rect, const CAPageViewDirection& type);返回值:CAPageView*参数:类型参数名说明CCRect&rect大小CAPageViewDirection&type类型解释:创建,并指定其Center,默认Center为(0,0,0,0)void setCurrPage(int var, bool animated, bool listener = false);返回值:void参数:类型参数名说明intvar页面数boolanimated动画boollistener监听解释:设置显示指定页    unsigned int getPageCount();返回值:unsigned int参数:解释:获取页面总数

[1] [2]  下一页


CAPageView(页面切换)