工作总结4(随时修改)

工作总结4(随时修改),第1张

概述列表容器: 列表容器,顾名思义就是只能上下滑动的容器,下面说说怎样往里面添加元素,如下图: 要往里面加入40个相同的元素,每行6个,每一行的元素放在一个基础容器里,有两种方法实现(其实原理一样) 一种是吧要加入的元素单独拿出来做成节点,在加进去,这样做的好处是结构比较清晰,通俗,比较简单,缺点是代码稍多 第二种是用clone,这种方法代码较少(推荐),一般美术会做成类似上图 先说第二种:

列表容器:

列表容器,顾名思义就是只能上下滑动的容器,下面说说怎样往里面添加元素,如下图:


要往里面加入40个相同的元素,每行6个,每一行的元素放在一个基础容器里,有两种方法实现(其实原理一样)

一种是吧要加入的元素单独拿出来做成节点,在加进去,这样做的好处是结构比较清晰,通俗,比较简单,缺点是代码稍多

第二种是用clone,这种方法代码较少(推荐),一般美术会做成类似上图


先说第二种:

       _allGeneralData = data::General::getInstance()->getGeneral().asValueVector(); //数据     	auto panel = seekChildBynameWithRetType<Widget*>(_generalBookLayer,"Panel_3"); //上图中的每一行的基础容器	auto item = seekChildBynameWithRetType<Widget*>(_generalBookLayer,"item");   //每一个元素		item->removeFromParent();   //清除ccs中原有的item和_ListvIEw中的元素,(美术资源中没有的就对应着不用写了)	_ListVIEw->removeAllitems();	int iconNumber = 0;       	for (int i = 0; i < 7;i++)   //总共40个,每行6个,所以要7行	{		auto panelClone = panel->clone();  //克隆要从外层到里层,首先克隆外层的基础容器		_ListVIEw->pushBackCustomItem(panelClone);//克隆体放入列表容器里					for (int j = 0; j < 6; j++)   //每一个基础容器中		{					if (iconNumber < 40)			{				auto itemClone = item->clone();  //克隆每一个元素				itemClone->setposition(item->getposition() + Vec2((22 + itemClone->getContentSize().wIDth) * j,0));				panelClone->addChild(itemClone);  //元素的克隆体放入基础容器里
				auto name = seekChildBynameWithRetType<ui::Text*>(itemClone,"nameText"); //这里开始往每个元素添加自己的信息了,注意不要放                                                                                                           在for外面,假如防外面,只是给第一个赋值。				name->setString(_allGeneralData.at(iconNumber).asValueMap()["name"].asstring());				iconNumber++;			}		}
        }
同理,假如要做成一排一个元素,从上往下,则去掉一个for循环即可。

假如要求点击每一个元素有d窗时,则在里面的for中加入itemClone->addtouchEventListener即可..


第一种方法:

再做一个Node类型的子图。

	int i = 0,j = 0;        for (auto iter = _allGeneralData.begin(); iter != _allGeneralData.end(); iter++)        {		if (i >= 6)  //每行6个		{			i = 0;			j++;		}           auto iconCSBNode = csloader::getInstance()->createNodeWithFlatBuffersfile("Generalicon.csb"); //Node子图	   auto iconWidget = iconCSBNode->getChildByname<ui::Widget*>("BackWidget");	   iconWidget->removeFromParent();	   iconWidget->setposition(Vec2(300 * i + 150,scrollinnerH - j * 320 - 950)); //这个坐标要仔细点设置	   this->addChild(iconWidget);	   iconWidget->addtouchEventListener(CC_CALLBACK_2(GeneralBook::selectIcon,this));//每一个元素添加触摸相应事件
           i++;
        }
总结

以上是内存溢出为你收集整理的工作总结4(随时修改)全部内容,希望文章能够帮你解决工作总结4(随时修改)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1034898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存