博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实习小白::(转) Cocos2d-x 3.0 开发(十四)使用UIScrollView 实现大小不同物品拖动展示...
阅读量:7100 次
发布时间:2019-06-28

本文共 1441 字,大约阅读时间需要 4 分钟。

1、概述

 

    UI部分一直是cocos2d-x的弱项,而这种境况在3.0版本中将得到改善。让我们从一个曾经的坑入手,来看看这些新特性。

    大家都知道,有个这样一个坑叫做CCTableView。它的作用是来创建一个可拖动的view,来进行展示。但它有的问题是只能创建等宽等高的一组元 素,这就出现问题了。比如一个聊天下拉框,总不能限制人说话的长度吧….. 所以它的存在聊胜于无,不断被吐槽。让我们看看新版中这个问题是如何处理的,先上个图:

 

 

 

2、创建ScrollView

 

    打开CocoStudio的UI编辑器,创建一个新工程,在画布列表中将名字更为:“ScrollView”

   然后在侧边栏中找到“滚动层”,拖动到编辑界面上。调整区域的大小,在属性->尺寸和模式进行调整。注意不要直接拖动边框,那样只会改变缩放比 -_- b

 

 

 

    然后在滚动层中拖入子button,并设置它们的基本属性:名称点击图片之类的。创建部分有不明白的童鞋可以看先前的:  

    创建了一堆控件:

 

 

3、设置ScrollView属性

 

    选中ScroView在它的属性中做如下配置:

 

 

    我们注意到,其中重要的参数有两个。

    滑动方向我们可以设置:水平、竖直、两种都有。这里我们选择水平。区域宽度是可滑动区域的大小,如果不更改默认是与View区域等大,这时是不能滑动的。我们将其更改为1000,会发现在先前的区域外有增大的一部分。

    接下来我们在增大的区域中添加我们需要的物品。另外有个细节,就是我们将滑动区域边缘的物体调成有一部分超出界限,这样就会给用户可拖动的暗示。

 

 

    最后记得勾选模拟裁切,否则的话,View扩展区域的东西是会显示出来的。

    保存工程,导出我们的文件。

 

4、加载到程序

    运行脚本新建一个程序:testScrollView。

    添加库依赖,忘记添加方法的同学可以参照:

    更改Init方法:

 

[cpp]
  1. bool HelloWorld::init()  
  2. {  
  3.     //  
  4.     // 1. super init first  
  5.     if ( !Layer::init() )  
  6.     {  
  7.         return false;  
  8.     }  
  9.       
  10.     Size visibleSize = Director::getInstance()->getVisibleSize();  
  11.     Point origin = Director::getInstance()->getVisibleOrigin();  
  12.   
  13.     auto widget = dynamic_cast<gui::UILayout*>(cocostudio::GUIReader::shareReader()->widgetFromJsonFile("ScrollView.json"));  
  14.     auto layer = gui::UILayer::create();  
  15.     layer->addWidget(widget);  
  16.     this->addChild(layer);  
  17.     return true;  
  18. }  

 

    编译运行。

 

5、总结

 

    通过UIScrollView我们可以轻松的实现拖动展示的功能。在编辑器中将其摆放好、导出、加载到程序即可。PS:我怎么感觉导出的文件加载后有些偏啊?是我的错觉么⊙﹏⊙b

 

 Demo下载:http://download.csdn.net/detail/fansongy/6704997

 

本篇博客出自,转载请注明出处,禁止用于商业用途:

 

转载于:https://www.cnblogs.com/dudu580231/p/4983788.html

你可能感兴趣的文章
Yii - 直接执行SQL语句(转)
查看>>
C#事件-事件处理
查看>>
Android——线程通讯类Handler(转)
查看>>
正确使用pthread_create,防止内存泄漏
查看>>
oracle 为 用户 解锁 加锁 (以hr为例)
查看>>
【C++】模板参数推导(template argument deduction)
查看>>
新闻内容翻页
查看>>
VB 读写文件
查看>>
【Linux】time
查看>>
data-compression download
查看>>
多种联结语句
查看>>
ProcesscmdKey KeyDate老是 ProcessKey解决方法
查看>>
git stash和git stash pop
查看>>
[原]Windows批处理命令学习二
查看>>
利用SSLStrip & Ettercap ARP欺骗嗅探密码
查看>>
心血来潮虚拟机安装了centos 6.2,且重新温习了linux下常用命令
查看>>
pku 1611 The Suspects 并查集的应用
查看>>
.Net Framework Windows Debug SOS 扩展常用命令速查[转载]
查看>>
转载 - 不使用任何框架,教你制作网页滑动切换效果
查看>>
【原】NSMutableDictionary与NSMutableArray
查看>>