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

CAScrollView(滚动视图)

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

由 ?﹏???ζ???﹏﹏? 创建, 最后一次修改 2016-08-29 类说明CAScrollView即滚动视图,负责CrossApp的所有滚动操作。可支持裁剪其矩形区域以外的渲染,并让其子数图支持滑动操作与缩放功能。我们在使用CAScrollView时,有时需要对CAScrollView的一个事件进行监听,那么我要就要去实现CAScrollViewDelegate,并重写其函数。CAScrollView 属性 (点击属性名可查看属性介绍)属性说明TouchEnabledAtSubviews触摸事件启用在子视图ViewSize设置容器的内部大小Bounces设置是否滚动回弹BounceHorizontal水平方向回弹BounceVertical竖直方向回弹ShowsHorizontalScrollIndicator设置是否显示水平滚动条ShowsVerticalScrollIndicator设置是否显示竖直滚动条MaximumZoomScale最大缩放比例,默认值为1MinimumZoomScale最小缩放比例,默认值为1ZoomScale滑动层缩放比例, 默认值为1ScrollViewDelegate滚动视图代表ShowsScrollIndicators显示滚动指示器HeaderRefreshView头部刷新试图FooterRefreshView尾部刷新试图Tracking是否正在滚动Decelerating是否在惯性运动中MultitouchGesture多点触控手势Zooming是否正在进行缩放控制CAScrollView 方法 (点击方法名可查看方法介绍)方法说明setContentOffset设置相对于视图顶部的偏移量setBackGroundImage设置背景图片setBackGroundColor设置背景颜色addSubview添加子视图insertSubview插入子视图removeAllSubviews删除所有子视图removeSubview删除子视图removeSubviewByTag通过标签删除视图getSubviewByTag通过标签获取视图setContentOffset获得内容偏移setZoomScale设置缩放比例isReachBoundaryLeft是否到达左边界isReachBoundaryRight是否到达右边界isReachBoundaryUp是否到达上边界isReachBoundaryDown是否到达下边界endHeaderRefresh端头刷新endFooterRefresh端尾刷新getContentOffset获取相对于视图顶部的偏移量ccTouchBegan触摸事件开始时的回调函数ccTouchMoved触摸事件中触点移动时的回调函数ccTouchEnded触摸事件结束时的回调函数ccTouchCancelled触摸非正常结束时的回调函数。(例如:电话或锁屏)mouseScrollWheel鼠标滚轮createWithFrame创建,并指定其Frame,默认Frame为(0,0,0,0)createWithCenter创建,并设置其Center,默认Center为(0,0,0,0)init初始化startPullToHeaderRefreshView开始顶端刷新视图switchPCMode开关PC模式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具有强大的跨平台性能,并且具有离线能力,可以进行离线操作。对开发者和用户入门要求较低,且功能强大。综合效率高,开发者可以根据实际情况,考虑各方面因素来选择合适的开发解决方案。"));

[1] [2] [3]  下一页


CAScrollView(滚动视图)