位置: 编程技术 - 正文

cocos2d-x改底层之获取UIListView的实际内容大小(cocos2dx 3.17)

编辑:rootadmin

推荐整理分享cocos2d-x改底层之获取UIListView的实际内容大小(cocos2dx 3.17),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx怎么用,cocos2dx4.0教程,cocos2d教程,cocos2djs,cocos2d怎么样,cocos2djs,cocos2dx4.0教程,cocos2d-x教程,内容如对您有帮助,希望把文章链接给更多的朋友!

实际项目中UI界面中经常会用到UIListView,大多会在CocoStudio中直接添加这个控件。但是在使用中发现了一些坑和功能缺乏,然后就看了一下底层的逻辑,发现稍微改一下底层就可以满足需求,所以下面就针对需求来分析UIListView的底层,同时做一些改动。

需求:根据链表中的内容来动态调整listView本身的大小首先,我们要知道,我们插入和移除链表中的一项,listView本身会如何处理:

这里最后一句才是重点,只有刷新了才会真正计算新的显示,之前的改动才真正生效,所以放我们添加一项的时候,当前帧其实并没有立即刷新,如果这时候获取大小,只会和之前的一样,并没有改变,那么我们要知道,开关_refreshViewDirty是在什么时候起作用了呢,如下:

可以看到,最关键的改变大小的函数updateInnerContainerSize():

定义一个变量用来保存真实大小,原因是listView本身计算大小的结果并不是以内容为准,而是以最初用户设置的大小,那么真实的大小会被遗弃,所以我们要保存住她:

setInnerContainerSize(_actualInnerSize);这个函数是在父类定义的:

在updateInnerContainerSize函数中我们以保存了实际内容大小,需要写一个get函数来获取:

cocos2d-x改底层之获取UIListView的实际内容大小(cocos2dx 3.17)

最后实现需求:listView->setSize(getActualInnerSize())

上面是在CocoStudio中添加的UIListView控件,如果是手动创建的话有三点注意:

为了能够滚动,要实现两个条件

①:setTouchEnable(true)

②:一定要将UIListView 放入到UILayer中,只有UILayer才会监听UI系列触摸,CCLayer不可以

所以需要创建一个UILayer* layer;layer->addWidget(list);//一定是addWidget,表示以挂件形式添加,addChild不可以,最后再addChild(layer);

③:向列表中添加控件时,列表会自动排好位置,此时位置是不受手动管理的(而且位置通常不对,中心点在左上角,我们无法改变,做相对偏移等);但有时候我们为了调整位置,只能添加中间层,如UILayout,而UILayout要注意的是,它相当于一个层,坐标计算和层一样。

Cocos2dx 实现擦除 橡皮擦 刮奖 效果的实现 转载自

cocos2d 颜色混合 ccBlendFunc 使用方法 本节参考:

(1)cocos2d-x-2.2.4搭建windows开发环境 Cocos2d-x-2.2.4搭建windows环境软件需求Windows系统(windows7或之后的系统);cocos2d-x-2.2.4压缩包;python安装包(推荐使用2.7.3版本);文本编辑工具(不推荐

标签: cocos2dx 3.17

本文链接地址:https://www.jiuchutong.com/biancheng/368812.html 转载请保留说明!

上一篇:cocos2dx 按钮重复渐变效果的实现(cocos2dx scrollview)

下一篇:Cocos2dx 实现擦除 橡皮擦 刮奖 效果的实现(cocos2d drawcall)

  • 承租方支付租房税费
  • 实收资本怎么交所得税
  • 餐饮业购买的油类有哪些
  • 个税专项扣除如何申报
  • 农业免税企业账户怎么查
  • 本期缴纳上期应缴税额
  • 企业所得税调增项目有哪些
  • 固定资产完工前盘亏的工程物资净损失
  • 给员工发结婚礼金怎么说
  • 展厅出租或招商
  • 发票联丢失能用抵扣联入账吗
  • 混合销售行为的含义及税务处理
  • 发票一直报送中,开不了发票
  • 进口设备不需要交关税吗
  • 基金经费管理办法
  • 净资产收益率怎么求
  • 红冲发票后 库存怎么处理
  • 公允价值变动损益怎么算出来的
  • 申报个税和缴纳个税一样吗
  • 往来账乱如何处理
  • 长期闲置的机器叫什么
  • 鸿蒙系统怎么设置双击亮屏
  • 单位办事人员
  • 本月购买原材料怎么入账
  • 出口零申报步骤
  • mysql如果不存在就创建表
  • php调用远程桌面
  • php发送短信
  • 电子承兑汇票支付信用查询是什么意思
  • 端午安康图片
  • 退款会退货吗
  • 用php编写从大到小排序
  • 未分配利润与净利润关系
  • 即插即用系统
  • 前端手撕代码
  • 完美解决win10间歇性掉线
  • 收回外币应收账款如何处理
  • 递延收益和其他应付款的区别
  • 客户购买商品的条件?
  • 节假日加班工资是几倍
  • 小型微利企业享所得税优惠
  • 服务型公司营业执照图片
  • 网商贷企业贷款条件
  • 网上学电脑哪个软件好
  • js变量作用范围
  • 个体定额和不定额有什么区别
  • 其他流动资产待摊费用
  • 房地产开发成本测算套表(全过程)
  • 房租已付未收发票可以待摊费用吗
  • 利息收入应该填什么科目
  • 出口退税的会计处理
  • 代扣税是不是社保
  • 公司注销时应付账款怎么处理
  • 调整期初库存商品分录
  • 日常费用报销表格
  • 支票填写的规范与常识
  • centos6.10安装
  • ubuntu查看内存占用最多的进程ID
  • 蓝屏代码bad_system_config_info
  • macbook如何安装windows
  • macbook imessage
  • linux bye
  • centos设置双网卡
  • ghost7sp1安装教程
  • win7电脑dns错误不能上网怎么办
  • win8是怎么样的
  • linux入门学习
  • Tutorial 8:Scaling Transformation
  • linux服务器硬件配置要求
  • webpack使用场景
  • 如何用jquery
  • 创建网元
  • python3并发
  • javascript canvas方法有哪些
  • unity5.4.0
  • JavaScript小技巧整理篇(非常全)
  • 个人去税务局开劳务费怎么开
  • 天津2023防暑降温费标准文件
  • 个人所得税app可以更改电话号码吗
  • 地方税务机关税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设