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
参数:
解释:初始化
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟