JSRUN 用代码说话

CAPageView(页面切换)

编辑教程

CAPageView(页面切换)

类说明

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

参数:

类型 参数名 说明
int var 页面数
bool animated 动画
bool listener 监听

解释:设置显示指定页

unsigned int getPageCount();

返回值: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 init();

返回值:bool

参数:

解释:初始化

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟