类说明
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 属性说明
类型:CAPageViewDirection
解释:页面浏览方向。get{}。
类型:CAPageViewDelegate*
解释:页面视图代表。set/get{}。
类型:int
解释:当前页。get{}。
类型: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
参数:
| 类型 | 参数名 | 说明 | 
| int | var | 页面数 | 
| bool | animated | 动画 | 
| bool | listener | 监听 | 
解释:设置显示指定页
返回值:unsigned int
参数:
解释:获取页面总数
void setViews(const CADeque<CAView*>& vec);
返回值:void
参数:
| 类型 | 参数名 | 说明 | 
| CADeque<CAView*>& | vec | CADeque容器 | 
解释:添加存放View的CADeque容器
void setViews(const CAVector<CAView*>& vec);
返回值:void
参数:
| 类型 | 参数名 | 说明 | 
| CAVector<CAView*>& | vec | CAVector容器 | 
解释:添加存放View的CAVector容器
CAView* getSubViewAtIndex(int index);
返回值:CAView*
参数:
| 类型 | 参数名 | 说明 | 
| int | index | 索引 | 
解释:通过索引获取子视图
virtual void setShowsScrollIndicators(bool var);
返回值:void
参数:
| 类型 | 参数名 | 说明 | 
| bool | var | 是否显示滚动条 | 
解释:设置显示滚动条
返回值:bool
参数:
解释:初始化