Cocos2d-x 3.2编写常用UI组件 《Cocos2d-x 3.2编写常用UI组件 带
按照惯例先发上效果图: 正文: 一说起滚动效果大家可能会联想到Cocos2d-x给我们提供的ScrollView。我一开始也是打算用ScrollView来实现的,但是用着用着发现出现了各种莫名其妙的错误,所以只好自己重新写一个Node,通过onTouchBegan和onTouhMoved两个事件回调来实现滚动的效果。
GridView使用说明: 1.利用GridView::create(int row,int column)来创建一个GridView,row和column分别指定行数和列数。注意这里的行数是指可见的行数 2.通过GridView::addItem(Node* node)来向GridView里面添加元素
GridView实现思路: 1.创建的时候指定行数和列数 2.GridView里面新建一个Node(visibleNode)用于保存所有的item(以后实现滚动的时候方便点) 3.通过addItem进GridView时,计算出item的位置(x,y) 4.接受触摸事件 5.计算触摸的偏移量,visibleNode移动相应的距离 6.一头一尾的触摸要稍作判断(即不能上方出现空白或全空白) 7.添加遮罩层
核心代码解析: 1、添加Item
2、触摸事件
3、滚动条 实现思路: 2)滚动Button的大小由当前最大行数和可见行数决定:滚动Button的大小=可见行/最大行 * 滚动条高度 3)滚动条的位置由GridView当前位置和GridView最大可以上升的位置、滚动Button大小和滚动条大小决定 可以这样理解: GridView上升高度/最大可以上升高度 = Button下降高度/Button最大可以下降高度 其中,GridView的上升高度和最大上升高度可以直接获取,Button的最大下降高度= 滚动条大小-Button大小 因此,可以求出Button的下降高度。也就可以确定Button的位置
4、GridView主要用途 GridView可以用来做背包视图,或者一个简单的listView(需要设置列数为1)
最后,附上源码:注意要把那两个图片放到resource文件夹里面哦
源码下载:带滚动的表格GridView (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |