位置: 编程技术 - 正文

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)

  • 房地产销售增值税纳税义务发生时间
  • 什么时候公司需要赔偿员工
  • 农产品增值税加计扣除可以补申报吗
  • 价外费用含税吗
  • 已经缴税的发票还能作废吗
  • 房产税从租计征的税率是12%还是4%
  • 政府性搬迁补偿收入的税务处理
  • 小规模纳税人汇算清缴要填什么表
  • 递延收益怎么入账
  • 增值税多缴税款退税政策
  • 代扣代缴的增值税算进项税吗
  • 2018年所得税率
  • 购进材料无发票会计分录
  • 固定资产退回账务处理规定
  • 逃避缴纳税款是税收法多少条
  • 金税盘提示离线开票时间超限深圳
  • 企业风险应对的基本类型包括
  • 计提个人负担的社会保险费分录
  • 购货方预付货款的分录
  • 会议费税前扣除最新税务规定
  • 咨询公司怎么交社保
  • 什么是comsol
  • bios读取不出u盘
  • 商业承兑汇票到期兑现流程
  • 公司法人向公司借款未还,公司可以倒闭吗
  • macOS Big Sur 11.3 开发预览版 Beta正式更新
  • linux系统中文输入法切换不出来
  • 当月认证抵扣的进项税发票一定要入帐做成本吗?
  • 大金中央空调面板图解
  • wx小程序
  • 扣除发票
  • 单位购买降暑用品
  • vue添加css
  • php登录注册
  • vue父组件怎么调用子组件的方法
  • photo-sphere-viewer中文文档
  • libpcap python
  • 专用发票能当月抵扣吗
  • 红字发票信息表编号
  • 进项税额转出最后怎么处理
  • pycharm pypy
  • 开红字发票时,数量与金额必须是负数?
  • 路桥费税率是几个点
  • 公租房特许经营权转让
  • 专用发票跨月退税怎么办
  • 进口货物的完税价格计算公式
  • 企业注销时实收资本怎么处理
  • 小规模纳税人减按1%怎么计算
  • 主营业务成本记借方还是贷方
  • 非居民企业所得税
  • 收不回来的应收账款
  • 运输费计入什么科目里面
  • 营改增政策解答
  • 不验旧能领购发票吗
  • 商业承兑过期后可以退回吗
  • 存出保证金计入
  • 企业和职工之间的财务关系属于
  • 个人如何成立公司
  • 一个分页存储过多的文件
  • vmware workstation中的虚拟机的终端
  • Windows Server 2003网络负载均衡如何实现
  • 苹果mac共享改名
  • mac截图清晰度设置方法
  • linux安装iso软件
  • xp管理员账号密码
  • mac如何全屏窗口
  • linux 查看指定行
  • win8的计算器在哪里
  • win10mobile最新版本
  • 怎么关闭win10升级
  • win7系统电脑蓝牙怎么开
  • win builds
  • node·js
  • unity3d c语言
  • [置顶]bilinovel
  • shell脚本-le
  • javascript如何
  • 河南医疗保险网上怎么缴费截止时间
  • 税务局领取发票后怎么操作
  • 国家税务总局网址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设