常用方法
<p>[TOC]</p>
<h3>控制台打印</h3>
<p><code>luaprint(any)</code></p>
<h3>前端打印</h3>
<p><code>luadump(t)</code></p>
<pre><code>local data = {name=&quot;小明&quot;,age=18}
luadump(data)
前端控制台↓↓↓
data = {
name = &quot;小明&quot;,
age = 18
}</code></pre>
<h1>UI相关常用(全部请查看UI模块)</h1>
<ul>
<li>使用方式 <code>co.组件名:函数(形参)</code></li>
</ul>
<h3>通过名称获取控件对象(通用)</h3>
<p><code>getChildByName(parent,&quot;name&quot;)</code></p>
<pre><code>local testImg = co.ImageView:getChildByName(cls.ccui.xmlPanel,&quot;testImg&quot;)</code></pre>
<h3>设置可见性(通用)</h3>
<p><code>setVisible(widget,bool)</code></p>
<pre><code>co.ImageView:setVisibale(testImg,false)</code></pre>
<h3>添加点击事件(通用)</h3>
<p><code>addClickEventListener(widget,callback,time)</code></p>
<pre><code class="language-lua">-- widget 组件对象,callback 回调函数,time 点击间隔时间,可省略
co.Button:addClickEventListener(widget,function(sender)
-- 按钮点击后的逻辑
end</code></pre>
<h3>获取控件标签(通用)</h3>
<p><code>getTag(widget)</code></p>
<pre><code>-- 常用于动态容器获取当前subItem是第几个子项目
co.ScrollView:reloadListView(scroll,len,function(subItem)
local tag = co.ImageView:getTag(subItem)
local o = cls.data[tag]
-- 业务逻辑
end</code></pre>
<h3>设置控件触摸事件,h5走添加点击事件</h3>
<p><code>onClickEventListener(widget,callback,time)</code></p>
<pre><code> -- widget 组件对象,callback 回调函数,time 点击间隔时间,可省略
co.Button:onClickEventListener(widget,function(sender)
-- 业务逻辑,如向后端发送请求
end)</code></pre>
<h3>设置图片外观</h3>
<p><code>loadTexture</code></p>
<pre><code>-- ImageView、LoadingBar、ProgressTimer 可用
-- 示例如flag为true 设置a.png ,false设置b.png
if flag then
co.ImageView:loadTexture(widget,string.format(&quot;res/custom/%s/a.png&quot;,cls.name))
else
co.ImageView:loadTexture(widget,string.format(&quot;res/custom/%s/b.png&quot;,cls.name))
end</code></pre>
<h3>重新加载列表数据,并根据子项目数量调整列表大小</h3>
<p><code>reloadData(widget,len,callback(subItem))</code></p>
<pre><code> -- 示例,给 listView 创建子项目,并设置按钮名称和点击事件
local listView = co.Widget:getChildByName(cls.ccui.xmlPanel,&quot;ListView&quot;)
co.ListView:reloadData(listView,#cls.data,function(subItem)
local tag = co.Button:getTag(subItem)
local obj = cls.data[tag]
co.Button:setString(subItem,obj.pageName)
co.Button:addClickEventListener(subItem,function(sender)
PanelComp.onClickButtonSelectMainPage(co.Button:getTag(sender))
end)
end)</code></pre>
<h3>以列表形式重新加载项目</h3>
<p><code>reloadListView(widget,len,callback(subItem))</code></p>
<pre><code> --示例,根据 cls.data 创建物品框
local scroll = co.Widget:getChildByName(cls.ccui.xmlPanel,&quot;ScrollView&quot;)
co.ScrollView:setItemsMargin(scroll,-1)
co.ScrollView:reloadListView(scroll,#cls.data,function(subItem)
local tag = co.ImageView:getTag(subItem)
local data = cls.data[tag]
local iconCell = co.ImageView:getChildByName(subItem,&quot;icon_cell&quot;)
co.ItemShow:create(iconCell,{
id = data.giveItem[1][1],
look = true,
})
end)</code></pre>
<h3>设置红点可视状态</h3>
<p><code>setRedPointVisible(widget,bool)</code></p>
<pre><code>co.Button:setRedPointVisible(widget,true)</code></pre>
<h3>更新物品框内容</h3>
<p><code>update(widget,p)</code></p>
<pre><code> -- 通过id来更新
co.ItemShow:update(widget, {
index = 物品id,
look = true
})
-- 通过名称来更新
o.ItemShow:update(widget, {
itemName = 物品名称,
look = true
})</code></pre>
<h3>更新容器所有子项目</h3>
<p><code>updateItems(widget)</code></p>
<pre><code>Layout、ListView、PageView、ScrollView、TableView
-- 更新ScrollView子项目
co.ScrollView:updateItems(co.Layout:getChildByName(item,&quot;scroll_view&quot;))</code></pre>
<h3>通过tag更新子项目</h3>
<p><code>updateItemByTag(widget,tag)</code></p>
<pre><code>Layout、ListView、ScrollView、PageView、TableView
-- 只刷新第3个子项目
co.ScrollView:updateItems(co.Layout:getChildByName(item,&quot;scroll_view&quot;),3)</code></pre>
<h3>通过name更新子项目</h3>
<p><code>updateItemByName(widget,name)</code></p>
<pre><code>Layout、ListView、ScrollView、PageView、TableView
-- 更新名称叫item_4的子项目
co.ScrollView:updateItemByName(scroll,&quot;item_4&quot;)</code></pre>
<h3>创建消耗容器</h3>
<p><code>createConsumeView((layout,t,style))</code></p>
<pre><code>-- 示例 cls.ccui.ShowView 为基础容器,data为数据来源,style为风格样式1,2,3,4
co.Layout:createConsumeView(cls.ccui.ShowView,{data = cls.data[1].need, style = 1})</code></pre>
<h3>创建属性视图(Layout)</h3>
<p><code>createAttrView(layout,t)</code></p>
<pre><code>-- 示例
co.Layout:createAttrView(cls.ccui.AttrView,{data = t,c3b1 = &#039;#FFFF00&#039;, c3b2 = &#039;#FFFF00&#039;, extra = full})</code></pre>