HBox和VBox布局

  • HBox只是一个水平布局包装类。 HBox里面所有的孩子节点都会水平排列成一行
  • VBox仅仅是对垂直布局的一个简便的类封装。 VBox把它的子节点布局在一竖列中。

Layout容器下布局

ccui.LayoutType =
{
ABSOLUTE = 0, --绝对布局 默认 子元素按照绝对位置排列
VERTICAL = 1, --垂直平铺
HORIZONTAL = 2, --横向平铺
RELATIVE = 3, --相对布局
}

ccui.LinearGravity =
{
none = 0,
left = 1, --左侧对齐
top = 2, --顶部对齐
right = 3, --右侧对齐
bottom = 4, --底部对齐
centerVertical = 5, --垂直居中对齐线性布局
centerHorizontal = 6, --水平居中对齐线性布局
}

Layout之绝对布局

代码如下

local layout = ccui.Layout:create()
layout:setLayoutType(ccui.LayoutType.ABSOLUTE)

Layout之相对布局

代码如下

local layout = ccui.Layout:create()
layout:setLayoutType(ccui.LayoutType.RELATIVE)

Layout之垂直平铺

代码如下

local layout = ccui.Layout:create()
layout:setLayoutType(ccui.LayoutType.VERTICAL)

这段代码决定了子控件在垂直方向的布局规则,即Y坐标落点规则。

子控件代码

local button = ccui.Button:create()
button:setTitleText("Text Button 1")
button:setTouchEnabled(true)
button:loadTextures("cocosui/animationbuttonnormal.png", "cocosui/animationbuttonpressed.png", "")
layout:addChild(button) local lp1 = ccui.LinearLayoutParameter:create()
button:setLayoutParameter(lp1)
lp1:setGravity(ccui.LinearGravity.centerHorizontal)
lp1:setMargin({ left = , top = , right = , bottom = }) local textButton = ccui.Button:create()
textButton:setTouchEnabled(true)
textButton:loadTextures("cocosui/backtotopnormal.png", "cocosui/backtotoppressed.png", "")
textButton:setTitleText("Text Button 2")
layout:addChild(textButton) local lp2 = ccui.LinearLayoutParameter:create()
textButton:setLayoutParameter(lp2)
lp2:setGravity(ccui.LinearGravity.centerHorizontal)
lp2:setMargin({left = , top = , right = , bottom = } ) local button_scale9 = ccui.Button:create()
button_scale9:setTouchEnabled(true)
button_scale9:setTitleText("Text Button 3")
button_scale9:loadTextures("cocosui/button.png", "cocosui/buttonHighlighted.png", "")
button_scale9:setScale9Enabled(true)
button_scale9:setContentSize(cc.size(, button_scale9:getVirtualRendererSize().height))
layout:addChild(button_scale9)
local lp3 = ccui.LinearLayoutParameter:create()
button_scale9:setLayoutParameter(lp3)
lp3:setGravity(ccui.LinearGravity.centerHorizontal)
lp3:setMargin({ left = , top = , right = , bottom = } )
LinearLayoutParameter线性布局参数 它是专门为线性排列元素用线性布局管理器,通过该类可以指示子控件在水平方向的定位规则,即X坐标。如果垂直方向Layout容器中已定,那么只有决定X坐标的,Left,Right,Center有效。
示例图如下

Layout之横向平铺

代码如下

local layout = ccui.Layout:create()
layout:setLayoutType(ccui.LayoutType.HORIZONTAL)

这段代码决定了子控件在水平方向的布局规则,即X坐标落点规则。

子控件代码

local button = ccui.Button:create()
button:setTouchEnabled(true)
button:setTitleText("Text Button 1")
button:loadTextures("cocosui/animationbuttonnormal.png", "cocosui/animationbuttonpressed.png", "")
layout:addChild(button) local lp1 = ccui.LinearLayoutParameter:create()
button:setLayoutParameter(lp1)
lp1:setGravity(ccui.LinearGravity.top)
lp1:setMargin({left = , top = , right = , bottom = } ) local textButton = ccui.Button:create()
textButton:setTouchEnabled(true)
textButton:loadTextures("cocosui/backtotopnormal.png", "cocosui/backtotoppressed.png", "")
textButton:setTitleText("Text Button 2")
layout:addChild(textButton) local lp2 = ccui.LinearLayoutParameter:create()
textButton:setLayoutParameter(lp2)
lp2:setGravity(ccui.LinearGravity.centerVertical)
lp2:setMargin({left = ,top = ,right = ,bottom = }) local button_scale9 = ccui.Button:create()
button_scale9:setTouchEnabled(true)
button_scale9:loadTextures("cocosui/button.png", "cocosui/buttonHighlighted.png", "")
button_scale9:setTitleText("Text Button 2")
button_scale9:setScale9Enabled(true)
button_scale9:setContentSize(cc.size(, button_scale9:getVirtualRendererSize().height))
layout:addChild(button_scale9) local lp3 = ccui.LinearLayoutParameter:create()
button_scale9:setLayoutParameter(lp3)
lp3:setGravity(ccui.LinearGravity.bottom)
lp3:setMargin({left = , top = , right = , bottom = })
LinearLayoutParameter线性布局参数 它是专门为线性排列元素用线性布局管理器,通过该类可以指示子控件在垂直方向的定位规则,即Y坐标。如果水平方向Layout容器中已定,那么只有决定Y坐标的,Top,Bottom,Center有效。

cocos布局分析的更多相关文章

  1. JFS 文件系统概述及布局分析

    JFS 文件系统概述及布局分析 日志文件系统如何缩短系统重启时间 如果发生系统崩溃,JFS 提供了快速文件系统重启.通过使用数据库日志技术,JFS 能在几秒或几分钟之内把文件系统恢复到一致状态,而非日 ...

  2. Vtable内存布局分析

    vtale 内存布局分析 虚函数表指针与虚函数表布局 考虑如下的 class: class A { public: int a; virtual void f1() {} virtual void f ...

  3. pdfminer实现pdf布局分析 python (pdfminer realize layout analysis with PDF python)

    使用pdfminer实现pdf文件的布局分析 python 参考资料: https://github.com/euske/pdfminer https://stackoverflow.com/ques ...

  4. 安卓动态分析工具【Android】3D布局分析工具

    https://blog.csdn.net/fancylovejava/article/details/45787729 https://blog.csdn.net/dunqiangjiaodemog ...

  5. Android布局分析工具HierarchyView的使用方法

    本文是从这里看到的:http://www.2cto.com/kf/201404/296960.html 如果我们想宏观的看看自己的布局,Android SDK中有一个工具HierarchyView.b ...

  6. 嵌入式开发软件环境:uboot、kernel、rootfs、data布局分析

    uboot+linux的整体方案 开发板的datasheet中都有详细的地址空间的划分,其中比较重要的两块是:DDR地址空间和Flash地址空间.DDR空间是系统和应用的运行空间,一般由linux系统 ...

  7. div整体布局分析

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. cocos android分析

    来自:http://xiebaochun.github.io/ cocos2d-x Android环境搭建 cocos2d-x环境搭建比較简单,可是小问题还是不少,我尽量都涵盖的全面一些. 下载软件  ...

  9. 布局分析002:入门级的CSS导航弹出菜单

    这种弹出菜单非常有意思,也有记录的意义,甚至可以说,掌握了这种弹出菜单,基本上CSS掌握的差不多. 主要涉及下面三个重要知识: CSS的继承性质. relative absolute定位. 子选择符& ...

随机推荐

  1. ( 译、持续更新 ) JavaScript 上分小技巧(三)

    最近家里杂事较多,自学时间实在少的可怜,所以都在空闲时间看看老外写的内容,学习之外顺便翻译分享~等学习的时间充足些再写写自己的一些学习内容和知识点分析(最近有在接触的:复习(C#,SQL).(学习)T ...

  2. Code::Blocks快捷键操作

    编辑器 快捷键 功能 Ctrl+Z 恢复上一次操作 Ctrl+Shift+Z 重复上一次操作 F11 切换头文件/源文件 Ctrl+Shift+C 注释高亮代码 Ctrl+Shift+X 反注释高亮代 ...

  3. CentOS terminal 安装 matlab(mode=silent)

    1. 下载matlab for Unix 2014 ,需要crack文件 2. 挂载iso文件, mount -o loop,ro Mathworks.Matlab.R2014a.iso /media ...

  4. JavaWeb---总结(四)Tomcat服务器学习和使用(二)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下: 范例:将JavaWebDemoProject这个Ja ...

  5. Ps 技巧

    一.动作(批处理) 二.让图片更清晰 三.标尺 四.画面还原 五.内容识别比例(改变身材) 六.移花接木 七.多人头像 八.多重曝光 九.突出肌肉线条或者脸部轮廓 十.给照片换一个天空 十一.制作光束 ...

  6. 【原】web移动端常用知识点笔记

    摘要:因为平时搞移动端的比例多一点,做个小小的总结.虽然网上很多这方面的总结,不过还是想自己也总结一下,适合自己的才是最好的.这样也方便以后自己的查阅 viewport模板——通用 <!DOCT ...

  7. centos设置编码

    CentOS6.5解决中文乱码与设置字符集 Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的 ...

  8. c++模板类

    c++模板类 理解编译器的编译模板过程 如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”.看看我们几乎每天都能遇到的模板类吧,如S ...

  9. C# C++联调

    http://jingyan.baidu.com/article/fcb5aff7926344edab4a714d.html

  10. GIT@OSC中托管Android studio代码

    弄了好久,才知道如何向GIT@OSC托管代码,这里有需要的同学可以参考一下. 1.在GIT@OSC上新建一个工程 2.在AS中新建一个工程 3.在AS中选择“enable version contro ...