位置: 编程技术 - 正文

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)

  • 企业增值税税负率怎么计算
  • 增值税留抵注销时怎么办
  • 增值税可以退税嘛
  • 应付票据是资产吗
  • 少做收入第二年怎么算
  • 工资薪金需要缴纳什么税种
  • 销售收入是不是营业收入
  • 哪些邮政业务可以寄快递
  • 农产品进项税额计算扣除的方法
  • 现金管理规定有哪些主要内容
  • 调低社保基数怎么操作
  • 农产品收购发票是普票还是专票
  • 企业2015年申报抵扣的增值税,2016年检查有11000元不得抵扣,需要补交增值税11000元并收滞纳金及罚款1200元,请问老师具体该怎么做账,谢谢
  • 如何区分境内所有银行卡
  • 个人独资企业租车缴纳税金
  • 外购固定资产如何入账
  • 商业银行流动性覆盖率的最低监管标准为
  • 卖护肤品赚钱吗
  • 小规模季度的税收优惠
  • 没有税务登记证
  • 其他债券投资出售时交易费用
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • 配电安装施工方案
  • 冲减预付账款是什么意思
  • 预收和应收怎么转换
  • php面向对象优点,缺点
  • 百合花怎么养殖简单
  • reader_sl.exe - reader_sl进程有什么用.
  • live updater
  • 取得的进项税发票抵扣
  • 耕地佔用税的缴纳期限
  • 若依移动端微信登录
  • 佛罗里达naples
  • php中常量名命名规范
  • 差额征税七种业务是什么
  • content security policy blob
  • 小微企业声明函去哪个部门开
  • 其他应收账款为个人借款
  • 进出口总额用什么字母表示
  • 不抵扣的进项税额用不用转出
  • 个体工商户怎么年报
  • 家具厂成本
  • 什么叫房屋租购同权
  • 医药发票的税率是多少
  • 报关金额必须和实收一样吗
  • 营业税暂行实施细则
  • 工程款抵房款什么意思
  • 收到国库退款
  • 服务行业进项税额加计扣除
  • 开办费计入期间费用明细表
  • 金蝶暂存凭证怎样转正常凭证
  • 如何计算技术转让所得
  • 零售行业涉及到什么专业
  • 园林土方施工有哪些分项工程
  • 无法支付的款项应计入
  • 个人独资企业交什么税
  • sql server修改数据表
  • linux oos
  • win8装不了itunes
  • win7中任务栏的高度最多可以调整到屏幕的
  • helpcfg是什么文件
  • mac系统教程
  • linux链接分为什么和什么
  • win10系统命令大全
  • scm是啥
  • 微软kudo
  • unity 3d教程
  • 哪些游戏是c#开发的
  • easyui combobox默认选中
  • 火狐浏览器自定义滚动条
  • java.基础
  • linux中的ls命令的功能是变换工作目录到目标指定目录
  • unity破解安装教程
  • jquery增加
  • jquery增加一行和删除
  • 进口天然气定价机制
  • 电信追缴欠费的工作方案有哪些
  • 青岛税务局局长是什么级别?
  • 个人所得税申请专项扣除有什么用
  • 小规模纳税人销售自己使用过固定资产
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设