function UIBagController:initItemView( )
-- 获取面板
self.panelCenter = tolua.cast(UIHelper:seekWidgetByName(self.owner, "Panel_Center"), "Layout");
-- 获取面板下的子节点,多级子节点也可以获取到
local imageViewGrid1 = tolua.cast(UIHelper:seekWidgetByName(self.panelCenter, "ImageView_Grid1"), "ImageView");
local x, y = imageViewGrid1:getPosition();
local h, w = imageViewGrid1:getSize().width, imageViewGrid1:getSize().height;
local gridX, gridY = x , y
-- 获取父节点,也就是相应的面板
self.parentLayout = imageViewGrid1:getParent();
self.defaultTexture = imageViewGrid1:getTexture()
imageViewGrid1:setVisible(true);
imageViewGrid1:setTouchEnabled(false);
local imageViewItemTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGrid1, "ImageView_Item"), "ImageView");
imageViewItemTmp:setVisible(false)
local oLine = print("\n\n========背包个数==========" .. ItemM:getAmount());
for i = , ItemM:getAmount() do
-- 字符串处理函数
local gridName = string.format("ImageView_Grid%d", i);
local imageViewGrid = tolua.cast(UIHelper:seekWidgetByName(self.panelCenter, gridName), "ImageView");
if imageViewGrid == nil then
local imageViewGridTmp = imageViewGrid1:clone();
table.insert(self.itemArr, imageViewGridTmp);
if (i-)%self.numPerLine == then
gridY = y - (i-)/self.numPerLine * self.gridYInterval
oLine = oLine +
end
gridX = x + (i-)%self.numPerLine * self.gridXInterval
imageViewGridTmp:setName(string.format("ImageView_Grid%d", i));
local labelItemNameTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "Label_ItemName"), "Label");
labelItemNameTmp:setText(" ");
self:setLabelFont(labelItemNameTmp)
local labelItenNum = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "Label_ItenNum"), "Label");
labelItenNum:setText(" ");
self:setLabelFont(labelItenNum)
imageViewItemTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "ImageView_Item"), "ImageView");
imageViewItemTmp:setVisible(false);
imageViewGridTmp:setVisible(true);
-- 将克隆出来的节点添加进去
self.parentLayout:addChild(imageViewGridTmp);
imageViewGridTmp:setPosition(ccp(gridX, gridY));
imageViewGridTmp:setTouchEnabled(true);
else
table.insert(self.itemArr, imageViewGrid);
end
end
-- 获取按钮控件 后面的Button要看引擎中类是怎么定义的
local btnArrange = tolua.cast(UIHelper:seekWidgetByName(self.owner, "btnArrange"), "Button");
-- 给控件绑定事件,这里不一定只有按钮才可以,其他控件也可以
btnArrange:addTouchEventListener(function ( uiwidget, eventType )
-- 判断触摸类型
if eventType == TOUCH_EVENT_ENDED then
self:ClearGoods();
self:initItemView();
self:showData();
UISystemTips:SystemTips("bag_arrange");
end;
end);
end

lua -- 在面板中添加多个部件的更多相关文章

  1. SharePoint Framework 向web部件中添加外部库

    博客地址:http://blog.csdn.net/FoxDave 在进行开发的时候,你很可能会想要引用一些公开的JavaScript库到你的项目中,本文将会介绍如何打包和共享这些库. 打包脚本 默认 ...

  2. Step by step 活动目录中添加一个子域

    原创地址:http://www.cnblogs.com/jfzhu/p/4006545.html 转载请注明出处 前面介绍过如何创建一个域,下面再介绍一下如何在该父域中添加一个子域. 活动目录中的森林 ...

  3. java中向JTextArea中添加滚动条(垂直的和水平的)

    这次在研究java的swing类时,在做一个实例时,发现了JTextArea中添加滚动条的问题,经过网上查找资料和自己测试发现有以下用法: 1.首先应该把JTextArea添加到一个JScrollPa ...

  4. Quartus中添加时序约束

    1.sdc文件也是要添加到Quartus 软件中,这样在执行Read SDC File命令时才能读到相应的文件. 2.在TimeQuest打开的条件下,重新编译工程之后要Update Timing N ...

  5. [译]如何在Unity编辑器中添加你自己的工具

    在这篇教程中你会学习如何扩展你的Unity3D编辑器,以便在你的项目中更好的使用它.你将会学习如何绘制你自己的gizmo,用代码来实现创建和删除物体,创建编辑器窗口,使用组件,并且允许用户撤销他们所作 ...

  6. 4. 在Inspector面板中显示类中变量+ 拓展编辑器

    1. C#脚本如下: using UnityEngine; using System.Collections; public class MyTest : MonoBehaviour { ; ; [S ...

  7. (原)torch7中添加新的层

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6069627.html 参考网址: http://torch.ch/docs/developer-doc ...

  8. OSG项目经验2<在场景中添加文字面版>

    添加文字版需要用到osg的三个名字空间:                         osgText::Text,这个类用来添加文字和设置文字的一些属性:                     ...

  9. 在MFC对话框中添加状态栏

    如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图). 1. 首先,打开在资源视图的String Table并添加两个ID: ...

随机推荐

  1. 整合ssm框架之配置文件

    原文:https://blog.csdn.net/zwyanqing/article/details/53039591 ssm整合 一.applicationContext.xml 1.配置数据源 & ...

  2. Dlib机器学习指南图翻译

    原图地址 http://dlib.net/ml_guide.svg 翻译的文件 http://files.cnblogs.com/files/oloroso/ml_guide.zip

  3. MYSQL多行合并成一行多列

    ), VALUE )) INSERT INTO # VALUES (,,'), (,,'), (,,'), (,,'), (,,'), (,,'), (,,') SELECT code,MIN(nam ...

  4. CentOS下nodejs最简单的安装方法

    1. 下载编译好的文件 我的系统是centos7,进入要存放下载资源的目录,个人建议存放在/usr/local/src/目录下.然后执行安装命令: wget http://nodejs.org/dis ...

  5. 内存问题排查工具 --- valgrind

    1. 概述 2. Valgrind 3. 内存泄漏监测 3.1. 示例代码 3.2. 编译它 3.3. 用Valgrind监测进程的内存泄漏 4. 悬挂指针 4.1. 示例代码 4.2. Valgri ...

  6. Git提交代码报错Git push error:src refspec XXX matches more than one解决方案

    Git提交代码push时,报错这个 error: src refspec master matches more than one. error: failed to push some refs t ...

  7. sqlserver修改为windows验证登陆, 程序的调整

    业务需求, 客户要求sqlserver改为windows验证登陆, sa用户不可用, 程序端如何修改呢? 我在本机做了个测试. 环境: sqlserver2016, springmvc+spring+ ...

  8. webpack window下配置的hello world

    峰回路转 一区九折 先看效果:(此效果是webpack执行完之后会生成build文件夹已经它下面的index.html,点击index.html就是下图的效果)

  9. win7系统部分软件显示乱码怎么办

    用了Win7以后,发现有的中文软件打开后,在界面上出现很多文字乱码,之前这个软件在XP上用过,一直都是中文的,怎么到Win7上,就显示乱码了. 到网上一查,发现很多网友都有同样问题,经过一番查找,找到 ...

  10. win7 32位 安装opencv-python后,运行时提示 "from .cv2 import *: DLL load failed: 找不到指定的模块" 的解决办法

    安装opencv后,运行一个测试程序提示"from .cv2 import *: DLL load failed: 找不到指定的模块".于是百度一下解决办法,结果试了N多方法后也没 ...