[cocos]ui布局---创建根据父控件和仓库格子大小对齐的仓库

本文介绍了一种使用Lua编写的布局算法,该算法能够根据父容器的尺寸和子元素的数量及尺寸,合理地布置子元素的位置。通过计算每行显示的元素数量、元素间的间距以及每个元素的具体位置,实现了均匀分布的效果。

 

int itemNum = 25
local eachCol = 5
local rowNum = itemNum / eachCol
float parentW = parent:getContentSize():width
float parentH = parent:getContentSize():Height
for i=1,itemNum do 
  local row = math.ceil( i / eachCol )
  local col = n% eachCol 
  if col == 0 then
    col = eachCol 
  end
  local item= ccui.ImageView:create('UI/XXXX.png')
  local itemW= item:getContentSize().width
  local itemH= item:getContentSize().height
  local gapW = (parentW - itemW * eachCol) / (eachCol - 1) + itemW -- 间隔总宽度 = 总宽-格子占的宽 , 每个间隔宽度 = 间隔总宽度 / 间隔数 + itenW
  local gapH  = (parentH - itemH * rowNum) / (rowNum - 1) + itemH
  local x = itemW / 2
  local y = itemH / 2 
  item:setPosition( x + (col-1)*gapW , y + (row-1)*gapH)
  parent:add(item)
end

根据item本身x加上间隔来调整位置。

转载于:https://www.cnblogs.com/Faiz-room/p/7080852.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值