位置: 编程技术 - 正文

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)

  • 小规模企业所得税2023年税收政策
  • 委托加工应税消费品收回后直接销售
  • 结算备付金会计分录
  • 饭店开业几年后可以申请升级
  • 公益组织收到捐赠款计入什么科目
  • 甲供材料需要乙方上税吗
  • 销售旧货的增值税税率
  • 增值税 抵扣联
  • 企业购买房产每年需要交什么税
  • 软件企业的工资怎么样
  • 存货清查的目的,主要是进行总账和明细账
  • 无形资产的累计摊销是什么意思
  • 通行费电子增值税怎么算
  • 2021年工作绩效未达标扣工资
  • 印花税缴纳后合计怎么算
  • 记账凭证一定要签字吗
  • 小规模和一般纳税人的区别
  • 企业所得税季报和年报的区别
  • 企业拆迁补偿款需要开发票吗
  • 劳务派遣工资需要发票吗
  • 收入与应收款
  • 法人给公司基本户打款
  • 金税盘减免税款贷方余额
  • 高新企业申报指南
  • 房地产中介公司排名
  • 生产性生物资产包括哪些
  • 货物运输业增值税专用发票可以抵扣吗
  • 发票金额大于报销金额违法吗
  • 交接目录excel
  • php自定义函数的语法格式
  • 资产接收范围的确定
  • 工业企业成本核算会计分录
  • PHP:mcrypt_module_is_block_algorithm()的用法_Mcrypt函数
  • 供应商自身的品质问题
  • 个体工商户筹集资金的难易程度
  • 电子缴款凭证能代替完税证明吗
  • 通讯费补贴如何入账
  • 跨区域涉税事项报告表在哪里打印
  • 一般纳税人的进项普票怎么做账
  • arcore如何使用
  • 如何在vue项目中运行后端
  • 文化事业建设费的征收范围
  • 个人工程款收入算是工资流水吗
  • python3多态
  • 固定资产报废后累计折旧
  • 股权转让所得如何申报个税
  • 固定资产每月计提还是每年计提
  • 金蝶财务软件怎么冲销费用
  • 纳税人应纳税额怎么算
  • 印花税不小心申报几次怎么办
  • 一次摊销法的账务处理
  • 房开企业预缴增值税
  • 代收第三方补偿什么意思
  • 企业为何
  • 接受政府补助的应纳税所得
  • 支付安全生产费会计科目
  • 在途物资材料采购原材料的区别
  • 微软6月24号
  • 没有本地策略的网站
  • 系统组策略打不开
  • windowsxp怎么卸载
  • mac和iphone互动
  • win10 20h2体验
  • linux 操作系统
  • centos查看具体版本
  • win8创建我的电脑
  • 怎么更改电脑键盘语言
  • Win10打不开IE浏览器
  • win10怎么设置扩展屏
  • nodejs connect
  • node.js教学
  • nodejs test
  • js很简单
  • javascript零基础
  • 示例代码
  • 利用ctypes提高Python的执行速度
  • 财税公司销售工作好做么
  • 吉林省地税局电话号码
  • 预缴的税额可以用留底抵扣吗
  • 湖北航天金税盘服务器地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设