类说明 CAScrollView即滚动视图,负责CrossApp的所有滚动操作。可支持裁剪其矩形区域以外的渲染,并让其子数图支持滑动操作与缩放功能。我们在使用CAScrollView时,有时需要对CAScrollView的一个事件进行监听,那么我要就要去实现CAScrollViewDelegate,并重写其函数。
CAScrollView 属性 (点击属性名可查看属性介绍)
CAScrollView 方法 (点击方法名可查看方法介绍)
CAScrollView即滚动视图,负责CrossApp的所有滚动操作。可支持裁剪其矩形区域以外的渲染,并让其子数图支持滑动操作与缩放功能。我们在使用CAScrollView时,有时需要对CAScrollView的一个事件进行监听,那么我要就要去实现CAScrollViewDelegate,并重写其函数。
CAScrollView相对于前面的控件来说,使用比较复杂。但我们清楚了每个函数的意义之后,便可以很清晰的构建出我们所需要的CAScrollView。这里我们就举一个展示文本的一个CAScrollView。
首先,我们希望能够监听到CAScrollView的变化,那么我则需要去实现CAScrollViewDelegate,我们修该FirstViewController.h,添加要实现的函数如下:
#include <iostream>
#include "CrossApp.h"
USING_NS_CC;
class FirstViewController: public CAViewController ,public CAScrollViewDelegate
{
public:
FirstViewController();
virtual ~FirstViewController();
//触摸滚动时调用
virtual void scrollViewDidMoved(CAScrollView* view);
//触摸滚动停止时调用
virtual void scrollViewStopMoved(CAScrollView* view);
//滚动时调用(包括惯性滚动时)
virtual void scrollViewDidScroll(CAScrollView* view);
//开始滚动时调用
virtual void scrollViewWillBeginDragging(CAScrollView* view);
//结束滚动时调用
virtual void scrollViewDidEndDragging(CAScrollView* view);
//缩放时调用
virtual void scrollViewDidZoom(CAScrollView* view);
//头部开始刷新时调用
virtual void scrollViewHeaderBeginRefreshing(CAScrollView* view);
//尾巴开始刷新时调用
virtual void scrollViewFooterBeginRefreshing(CAScrollView* view);
protected:
void viewDidLoad();
void viewDidUnload();
}
然后我们就要在FirstViewController.cpp中去实现这写代理函数:
void FirstViewController::viewDidLoad()
{
// 获得屏幕大小
DSize size = this->getView()->getBounds().size;
//设置背景颜色为黑色
this->getView()->setColor(CAColor_black);
//创建scrollView
CAScrollView* scrollView = CAScrollView::createWithCenter(DRect(size.width*0.5,size.height*0.5 - 270,size.width * 0.5, 100));
//CACScrollView容器的大小
scrollView->setViewSize(DSize(size.width, 200));
//设置背景颜色
scrollView->setBackGroundColor(CAColor_orange);
//设置背景图片
//scrollView->setBackGroundImage(CAImage::create("r/HelloWorld.png"));
//水平方向是否回弹
scrollView->setBounceHorizontal(false);
//竖直方向是否回弹
scrollView->setBounceVertical(true);
//是否滚动回弹,控制竖直和水平方向,默认为ture
//scrollView->setBounces(false);
scrollView->setScrollViewDelegate(this);
this->getView()->addSubview(scrollView);
//创建label
CALabel* label = CALabel::createWithFrame(DRect(0, 0, size.width * 0.5, 200));
//设置水平剧中
label->setTextAlignment(CATextAlignmentCenter);
//设置竖直剧中
label->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
//设置字体大小
label->setFontSize(18 * CROSSAPP_ADPTATION_RATIO);
//设置文本内容
label->setText(UTF8("CrossApp具有强大的跨平台性能,并且具有离线能力,可以进行离线操作。对开发者和用户入门要求较低,且功能强大。综合效率高,开发者可以根据实际情况,考虑各方面因素来选择合适的开发解决方案。"));
//设置文本颜色
label->setColor(CAColor_blue);
//将label添加到scrollView
scrollView->addSubview(label);
}
//触摸滚动时调用
void FirstViewController::scrollViewDidMoved(CAScrollView* view)
{
CCLog("DidMoved-->");
}
//触摸滚动停止时调用
void FirstViewController::scrollViewStopMoved(CAScrollView* view)
{
CCLog("StopMoved-->");
}
//滚动时调用(包括惯性滚动时)
void FirstViewController::scrollViewDidScroll(CAScrollView* view)
{
CCLog("DidMScroll-->");
}
//开始滚动时调用
void FirstViewController::scrollViewWillBeginDragging(CAScrollView* view)
{
CCLog("BeginDragging-->");
}
//结束滚动时调用
void FirstViewController::scrollViewDidEndDragging(CAScrollView* view)
{
CCLog("DidEndDragging-->");
}
//缩放时调用
void FirstViewController::scrollViewDidZoom(CAScrollView* view)
{
CCLog("DidZoom-->");
}
//头部开始刷新时调用
void FirstViewController::scrollViewHeaderBeginRefreshing(CAScrollView* view)
{
CCLog("HeaderBeginRefreshing-->");
}
//尾巴开始刷新时调用
void FirstViewController::scrollViewFooterBeginRefreshing(CAScrollView* view)
{
CCLog("FooterBeginRefeshing-->");
}
CAScrollView 属性介绍 TouchEnabledAtSubviews 类型:bool 解释:触摸事件启用在子视图。is/set{}。
ViewSize 类型:DSize 解释:设置容器的内部大小。set/get{}。
Bounces 类型:bool 解释:设置是否滚动回弹。is/set{}。
BounceHorizontal 类型:bool 解释:水平方向回弹。is/set{}。
BounceVertical 类型:bool 解释:竖直方向回弹。is/set{}。
ShowsHorizontalScrollIndicator 类型:bool 解释:设置是否显示水平滚动条。is/set{}。
ShowsVerticalScrollIndicator 类型:bool 解释:设置是否显示竖直滚动条。is/set{}。
MaximumZoomScale 类型:float 解释:最大缩放比例,默认值为1。set/get{}。
MinimumZoomScale 类型:float 解释:最小缩放比例,默认值为1。set/get{}。
ZoomScale 类型:float 解释: 滑动层缩放比例, 默认值为1。get{}。
ScrollViewDelegate
类型:CAScrollViewDelegate* 解释:滚动视图代表。set/get{}。
ShowsScrollIndicators 类型:bool 解释:显示滚动指示器。is/set{}。
HeaderRefreshView 类型:CAPullToRefreshView* 解释:头部刷新试图。set/get{}。
FooterRefreshView 类型:CAPullToRefreshView* 解释:尾部刷新试图。set/get{}。
Tracking
类型:bool 解释:查看 ScrollView 是否正在滚动。is{}。 Zooming 类型:bool 解释:查看 ScrollView 是否正在进行缩放控制。is{}。
Decelerating
类型:bool 解释:查看 ScrollView 是否在惯性运动中。is{}。
MultitouchGesture 类型:MultitouchGesture 解释:多点触控手势,set/get{}。
CAScrollView 方法介绍 void setContentOffset(const DPoint& offset, bool animated);
返回值:void 参数: 类型 | 参数名 | 说明 | const DPoint& | offset | 偏移量 | bool | animated | 是否播放动画 |
解释:设置内容偏移量
void setBackGroundImage(CAImage* image); 返回值:void 参数: 解释:设置背景图像
void setBackGroundColor(const CAColor4B &color); 返回值:void 参数: 类型 | 参数名 | 说明 | const CAColor4B& | color | 背景颜色 |
解释:设置背景颜色
virtual void addSubview(CAView* subview); 返回值:void 参数: 解释:添加子视图
virtual void insertSubview(CAView* subview, int z); 返回值:void 参数: 类型 | 参数名 | 说明 | CAView* | subview | 子视图 | int | z | 数量 |
解释:插入子视图
void removeAllSubviews(); 返回值:void 参数: 解释:删除所有子视图
void removeSubview(CAView* subview); 返回值:void 参数: 解释:删除子视图
CAView* getSubviewByTag(int aTag); 返回值:CAView* 参数: 解释:通过标签获取子视图
void removeSubviewByTag(int tag); 返回值:void 参数: 解释:通过标签删除子视图
CAView* getSubviewByTag(int aTag); 返回值:CAView* 参数: 解释:过标签获取子视图
DPoint getContentOffset(); 返回值:DPoint 参数: 解释:获得内容偏移量 void setZoomScale(float zoom);
返回值:void 参数: 解释:设置缩放比例
virtual bool isReachBoundaryLeft(); 返回值:bool 参数: 解释:是否到达左边界
virtual bool isReachBoundaryRight(); 返回值:bool 参数: 解释:是否到达右边界
virtual bool isReachBoundaryUp(); 返回值:bool 参数: 解释:是否到达上边界
virtual bool isReachBoundaryDown(); 返回值:bool 参数: 解释:是否到达下边界
void endHeaderRefresh(); 返回值:void 参数: 解释:端头刷新
void endFooterRefresh(); 返回值:void 参数: 解释:端尾刷新
DPoint getContentOffset(); 返回值:DPoint 参数: 解释:获取相对于视图顶部的偏移量
virtual bool ccTouchBegan(CATouch *pTouch, CAEvent *pEvent); 返回值:virtual bool 参数: 类型 | 参数名 | 说明 | CATouch* | pTouch | 触摸传递对象 | CAEvent* | pEven | 此参数待定 |
解释:触摸事件开始时的回调函数
virtual void ccTouchMoved(CATouch *pTouch, CAEvent *pEvent); 返回值:virtual void 参数: 类型 | 参数名 | 说明 | CATouch* | pTouch | 触摸传递对象 | CAEvent* | pEven | 此参数待定 |
解释:触摸事件中触点移动时的回调函数
virtual void ccTouchEnded(CATouch *pTouch, CAEvent *pEvent); 返回值:virtual void 参数: 类型 | 参数名 | 说明 | CATouch* | pTouch | 触摸传递对象 | CAEvent* | pEven | 此参数待定 |
解释:触摸事件结束时的回调函数
virtual void ccTouchCancelled(CATouch *pTouch, CAEvent *pEvent); 返回值:virtual void 参数: 类型 | 参数名 | 说明 | CATouch* | pTouch | 触摸传递对象 | CAEvent* | pEven | 此参数待定 |
解释:触摸非正常结束时的回调函数。(例如:电话或锁屏)
virtual void mouseScrollWheel(CATouch* pTouch, float off_x, float off_y, CAEvent* pEvent); 返回值:virtual void 参数: 类型 | 参数名 | 说明 | CATouch* | pTouch | 触摸 | float | off_x | x坐标偏移量 | float | off_y | y坐标偏移量 | CAEvent* | pEvent | 事件 |
解释:鼠标滚轮
static CAScrollView* createWithFrame(const DRect& rect); 返回值:static CAScrollView* 参数: 类型 | 参数名 | 说明 | const DRect& | rect | 区域大小 |
解释:创建,并指定其Frame,默认Frame为(0,0,0,0)
static CAScrollView* createWithCenter(const DRect& rect); 返回值:static CAScrollView* 参数: 类型 | 参数名 | 说明 | const DRect& | rect | 中心点的位置及大小 |
解释:创建,并设置其Center,默认Center为(0,0,0,0)
virtual bool init(); 返回值:virtual bool 参数: 解释:初始化
void startPullToHeaderRefreshView(); 返回值:void 参数: 解释:开始顶端刷新视图
virtual void switchPCMode(bool var); 返回值:virtual void 参数: 解释:开关PC模式
|
请发表评论