位置: 编程技术 - 正文

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)

  • 收购未税矿产品代扣代缴的资源税计入成本吗
  • 国际税收协定的名词解释
  • 税控是干什么用的
  • 息税前利润怎么算
  • 公司每年网络费计入什么会计科目
  • 出租车发票可以重新打印吗
  • 外贸公司报关员是干什么的
  • 投资性房地产转为非投资性房地产
  • 国家相关规定出车补助的文件
  • 外包工加工工资怎么结算
  • 科目汇总表会计核算形式
  • 备用金三栏式明细账图片
  • 购买方已抵扣开具红字信息表之后做账需要什么原始凭证
  • 采购商品的运费计入成本的会计分录
  • 虚开费用发票入账
  • 已经交税的收入退款会计分录
  • 案例分析个人总结报告
  • 小规模纳税人出售使用过固定资产
  • 公司购买灯具的会计分录
  • 涉农和中小企业贷款分类证明没有就不能进行税前扣除么
  • 向境外支付违约金要代扣税吗
  • 培训费没有发票怎么办
  • 一般户转钱到基本户
  • 预提未收的租金怎么入账
  • edge浏览器总是打开新的网页
  • u盘bios设置usb启动
  • 鸿蒙系统通知栏界面怎么打开
  • 企业自行搬迁需要交税吗
  • 财务费用属不属于生产成本
  • laravel视频教程
  • php用法
  • 一般纳税人的进项普票怎么做账
  • vue面试题视频
  • 导入vue.js
  • return函数
  • 联营企业和合营企业是什么意思
  • 公司年产值怎么计算
  • 可视化调参
  • mysql启动器
  • 报销替票的风险是什么
  • mysql5.5远程连接
  • 电子发票应如何打印出来
  • 个人所得税累计收入怎么算
  • 一次性开票分期收入账务处理
  • 增值税进项税额抵扣期限最新
  • 其他应付款转应付账款分录
  • 其他应付款二级科目有哪些
  • 期初借款余额计算公式
  • 一般纳税人厂房租赁增值税税率是多少
  • 定期存款到期转存利息也转存吗
  • 期末留抵税额可以冲减欠税吗
  • sql server数据导入导出的特点
  • win7怎么创建新用户
  • windows禁用usb口
  • u盘启动pe工具
  • mac wifi时断时续
  • centos7 ethtool
  • windows系统后台不显示QQ等软件(任务栏右侧不显示QQ图标)
  • winxp开机黑屏只有光标
  • win10系统无法进入
  • linux系统的介绍
  • information_schema翻译
  • 如何设置ie8
  • 高通ar芯片
  • cocos2dx quicxk 3.3 导入Json文件布局 UI
  • python自动截图
  • python进行aes解密
  • android学习路线
  • jQuery ajax 当async为false时解决同步操作失败的问题
  • shell ui
  • powershell实战指南
  • unity gpu优化
  • js显示word
  • js null,undefined,字符串小结
  • jquery 修改
  • JavaScript 入门·JavaScript 具有全范围的运算符
  • 超清晰的壁纸
  • 增值税普通电子发票有什么用
  • 百旺税控客服电话
  • 税务局文化建设实施方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设