位置: 编程技术 - 正文

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)

  • 印花税纳税义务人有哪些
  • 购入安装设备的专用材料分录
  • 当月个税申报的是几月的工资表
  • 定额发票可以用旧的营业执照发票章吗
  • 出售已使用固定资产增值税申报表
  • 高铁票抵扣增值税
  • 发票上的密码区有什么用
  • 应交税金的期末余额怎么算
  • 主营业务成本属于
  • 转账支票遗失能挂失吗
  • 复利现值系数和普通年金现值系数关系
  • 免息分期怎么还款
  • 公司租的员工宿舍退租,现在要开发票给人家退房租
  • 简易征收货物的运费
  • 没有ca证书怎么办社保
  • 工会基金是扣个人还是扣企业的
  • 社保申报怎么查询
  • 报关单和发票上的公司抬头不一致
  • 简易征收发票认证了之后怎么处理
  • 净利润等于未分配利润和盈余公积吗
  • 税负率一般控制在多少合适
  • 小规模纳税人亏损要交税吗
  • 未完工产品成本计算公式
  • 若依框架介绍
  • win11设置共享文件夹
  • 金鱼花的养殖方法与注意事项
  • php执行mysql语句的函数
  • 成本核算流程会议记录
  • Symfony学习十分钟入门经典教程
  • 补缴免抵退
  • 工资应发数就是企业的成本
  • vue中elementui怎么用
  • 共轭梯度法matlab代码
  • 前端es6是什么意思
  • 股权对价支付
  • 差旅费报销可以直接从公账转到个人账户吗
  • centos乱码,怎么修改成英文
  • phpsystem函数
  • 优先股股息必须支付吗
  • 应交税费明细账登记图
  • 跨月更正申报会扣信用分么
  • sql参数是什么意思
  • 累计折旧借贷方向表示什么意思
  • 拆迁补偿款的组成
  • 短期借款的核算
  • 对公账户取钱该怎么取钱
  • 母公司将子公司股权无偿转让给子公司
  • 公司基建维修承诺书
  • 专款支出和事业支出
  • 运输费用增值税税率9%
  • 土地出让金如何核算
  • 本月暂估入库,下月
  • 如何理解什么是半殖民地半封建社会
  • 用友t3固定资产反结账的操作步骤
  • 销售净利率的范围
  • 资产负债表中的固定资产是原值还是净值
  • 对公支付宝可以转个人银行卡吗
  • 无形资产如何入股公司
  • 物流公司会计工作内容
  • 如何在windows中对硬盘进行分区
  • 虚拟机vmware下载教程
  • iexplores.exe是什么病毒
  • xp系统文件损坏怎么修复
  • linux sleep命令有什么用
  • 华为nova7耳机怎么戴
  • jquery操作html代码
  • node 全局安装
  • Android自定义对话框
  • shell脚本编写的基本知识
  • ubuntu sudo apt-get install
  • function函数的定义
  • unity怎么创建空对象
  • 如何使用定向流量
  • jquery实现动画
  • asoul抽象
  • 课题研究经费预算一般多少比较合适
  • 国税局征收管理办法
  • 怎么撤销税务三方协议
  • 亮点纷呈的意思和造句
  • pcie3.0*4接口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设