最近做项目发现个有趣的东西:ScrollView ,这是一个滚动窗口,之所以说有趣是因为发现有两个ScrollView;下面来简单介绍下这两个的用法和不同。
1、cocos2d::ui::ScrollView
#include <ui/CocosGUI.h>
auto scrollView = cocos2d::ui::ScrollView::create();
scrollView->setPosition(cocos2d::Point());
scrollView->setDirection(cocos2d::ui::ScrollView::Direction::HORIZONTAL);//方向
scrollView->setScrollBarEnabled(false);//是否显示滚动条
scrollView->setContentSize(cocos2d::Size());//设置窗口大小
scrollView->setBackGroundColor(cocos2d::Color3B &color);//设置背景颜色
scrollView->setInnerContainerSize(cocos2d::Size());//设置内容大小scrollView->addEventListener(CC_CALLBACK_1(,));//设置监听事件
scrollView->addTouchEventListener()//触摸监听
scrollView->addClickEventListener()//点击监听
2、ScrollView
ScrollView所在的Scene需继承ScrollViewDelegate,并且实现两个委托方法
virtual void scrollViewDidScroll(ScrollView* view);//滚动时响应
virtual void scrollViewDidZoom(ScrollView* view);)//缩放时响应
初始化
ScrollView* scrollView = ScrollView::create();
scrollView->setPosition(Vec2(0,112));
scrollView->setViewSize(cocos2d::Size(visibleSize.width,visibleSize.height- 112 - 128));//设置窗口大小
scrollView->setContentSize(cocos2d::Size(2988,visibleSize.height- 112 - 128));// 设置内容大小(这里需要注意,这里的设置内容大小函数和上面的设置窗口大小定义的一样的名称,容易混淆)
scrollView->setDirection(cocos2d::extension::ScrollView::Direction::HORIZONTAL);//设置方向
scrollView->setDelegate(this);//设置委托
上面的两个方法ScrollView的定义基本就完成了。还有一些方法,比如滚动到哪里,动画,直接去找set或者get方法就好,凭函数名称基本就可以知道需要用哪个。我所能想到的区别就是,一个是事件是封装好的,只需要在委托函数里添加事件的实现就好,另一个是自己添加监听,貌似更具灵活性。
还有一个不同,上面的可以直接设置背景颜色,后者需给它添加一个Layer当背景,当然也许是我没有找到。

本文介绍了Cocos2d-x中两种ScrollView组件的使用方法及其区别,包括属性设置、事件监听等内容。
568

被折叠的 条评论
为什么被折叠?



