位置: 编程技术 - 正文

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)

  • 什么是关税自主权
  • 公司之间往来款需要开收据吗
  • 人力资源服务的概念
  • 培训产生的住宿费算培训费吗
  • 一般纳税人外地预缴增值税税率
  • 劳保如何入账
  • 留抵进项税额
  • 不含税销售收入含消费税吗
  • 普通商户怎么开小票
  • 现金收取业务办理流程
  • 个体户销售蔬菜免增值税吗
  • 建筑业交税会计分录
  • 非居民企业能否认定为一般纳税人
  • 增值税纳税申报表在哪里打印
  • 借方与贷方区别
  • 电信增值税发票怎么抵扣
  • 以前年度损益调整借贷方向
  • 自购销售和委托代购
  • 变更经营范围要什么资料
  • 原材料入库如何分类
  • 如何进行降压治疗
  • linux的使用场合
  • 吉隆坡石油双塔有多高
  • linux统计文件行数字数
  • 财产损失立案
  • php23种设计模式
  • 进程aissca.exe
  • .ctc文件
  • 环境检测费做什么科目
  • Vue:element-ui中表格过长内容隐藏显示
  • 虚开增值税怎么查到的
  • 前端html模板
  • 前端get请求传数组
  • 机器学习中的预测评价指标MSE、RMSE、MAE、MAPE、SMAPE
  • HTTP加密/HTTPS工作过程
  • python快速检索
  • 投稿p2
  • Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试
  • 7z命令行详解
  • 存货的账务处理分录
  • 财政补助结转和财政补助结余
  • js array.fill
  • python根据键输出值
  • 公司车辆出售要交多少税
  • sql server评估期已过版本升级时重启失败
  • 应收保费核算什么业务
  • 管理费用的借贷科目
  • 预付款项为什么这么多
  • 撰写广告
  • SQL Sever2008r2 数据库服务各种无法启动问题的解决办法(详解)
  • 发票入账的管理规定
  • 预付账款指的是哪些
  • 购买理财计入现金流量表什么科目
  • 营业税金及附加税率
  • 管理费用冲减其他费用
  • 社保局退回来的社保怎么入账
  • 商品进销差价的作用
  • 转让固定资产的税率
  • 认证测试方式有哪几种
  • 小规模纳税人怎么开增值税专用发票
  • 一个会计每个月平均有多少钱
  • 汽车保险费能不能不交
  • 2018年水利建设基金税率
  • windows modules installer占用磁盘高
  • 常用的网络操作命令
  • win8管理工具在哪里
  • linuxwindows差别
  • win10周年更新版是什么意思
  • win10开启暗黑模式
  • win8如何免费升级win10
  • opengl英文
  • css英文代码翻译
  • node.js解析excel
  • androidstudio手机编程软件
  • ubuntu如何以root用户运行
  • jQuery实现HTML表格单元格的合并功能
  • javascript 对象
  • 昌隆鑫实业集团招聘
  • 合肥高新公共事务管理有限公司
  • 佛山退休办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设