[cb]UIGrid+UIStretch的自适应
自适应需求
如下图所示:一个Grid下面有六个Button,它们需要在不同的分辨下拉伸适应(Horizontal)宽度,以保证填充满底部

要点分析
首先有这两个要点
1、UIGrid中的Cell Width是根据屏幕比例动态调整的
2、NGUI的UICamera有一个onScreenResize 委托
自适应方法
我的布局
1、首先Grid下有六个子Button,Grid的参数设置如下:Cell Width是根据我的图片的大小,这里设置个大概值就好,因为不同分辨率,我们需要动态调整这个值

2、每个子Child即Button都绑定上UIStretch脚本,并把Style设置为Horizontal(水平),其中的Relative Size=1/6 ~=0.16667

测试代码
3、绑定GridTest脚本在Grid上:
using UnityEngine;
using System.Collections; public class GridTest : CUIBase
{
UIGrid btnsGrid;
// Use this for initialization
void Start()
{
btnsGrid = (UIGrid)GetControl<UIGrid>("BtnsGrid");
UIWidget _widget = GetControl<UIWidget>("BtnsGrid/Btn01HomeBtn");
btnsGrid.cellWidth = _widget.width;
btnsGrid.Reposition(); UICamera.onScreenResize += ScreenSizeChanged;
} // Update is called once per frame
void Update()
{ } void ScreenSizeChanged()
{
UIWidget _widget = GetControl<UIWidget>("BtnsGrid/Btn01HomeBtn");
btnsGrid.cellWidth = _widget.width;
btnsGrid.Reposition();//Grid重新进行排序
CBase.Log("size change");
}
}
效果预览
4、点击Play,修改屏幕分辨率,我们可以看到在不同的分辨下,这六个Button都可以完全填充底部区域。

[cb]UIGrid+UIStretch的自适应的更多相关文章
- UIGrid+UIStretch的自适应
http://www.cnblogs.com/zhaoqingqing/p/3891603.html 如下图所示:一个Grid下面有六个Button,它们需要在不同的分辨下拉伸适应(Horizonta ...
- 【NGUI】屏幕自适应(不用UIStretch,用UIRoot)---------------good
原地址:http://blog.csdn.net/lzhq1982/article/details/18814023 这篇文章是转载的,之前用UIStretch做屏幕自适应,但一直有两个硬伤让我难受, ...
- ui-grid样式,表格高度自适应行高,没有滚动条,去掉表头
前后端设置:
- [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景
我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,unity也不例外,所以从本篇开始将会介绍如何搭建多个场景, ...
- NGUI屏幕自适应
NGUI确实是非常棒的一个做界面的插件,比起U3D自带的GUI要好很多,当然也有一些不好之处,毕竟什么都不可能那么完美. 最近在用Unity写游戏使用NGUI遇到了一个很多人都在遇到的问题,就是关于屏 ...
- 【Unity3D插件】NGUI屏幕自适应(转)
屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路.以下是我在开发过程中找到的一个比较方便的实现方法. 主要组件 1 ...
- UNITY3D使用NGUI制作自适应UI的总结
原地址:http://www.cnitblog.com/updraft/archive/2013/11/12/88801.html 制作自适应的几个方法1. 使用 UIROOT 里设置自定义高度的方法 ...
- Unity3D NGUI自适应屏幕分辨率(2014/4/17更新)
原地址:http://blog.csdn.net/asd237241291/article/details/8126619 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 本文链接地址: ...
- AngularJS表格神器“ui-grid”的应用
HTML: (代码仅用于解释得更清楚,并未完全展示) <!doctype html> <html ng-app="app"> <head> & ...
随机推荐
- elasticSearch6源码分析(12)DiscoveryModule
1.DiscoveryModule概述 /** * A module for loading classes for node discovery. */ 2.discovery The discov ...
- Ubuntu 配置Tomcat环境(转载)
Ubuntu 配置Tomcat环境 1.下载Tomcat http://tomcat.apache.org/,下载Tomcat 8(由于目前最新eclipse不支持tomcat 9) 将下载的ap ...
- java运行jar包时候加载指定目录的其他jar支持包
最近发生一个小故障,调试好的项目,发布成jar包后无法找到oracle的驱动,研究了一下解决了.记录一下. 写了一个run.sh脚本 #!/bin/bash cd ~ cd app nohup jav ...
- C# 全文搜索Lucene
全文出自:https://blog.csdn.net/huangwenhua5000/article/details/9341751 1 lucene简介1.1 什么是luceneLucene是一个全 ...
- 方程整数解-2015省赛C语言A组第一题
方程整数解 方程: a^2 + b^2 + c^2 = 1000(或参见[图1.jpg])这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解.你能算出另一组合适的解吗? 请填写该解中最小的数 ...
- python 历险记(六)— python 对正则表达式的使用(上篇)
目录 引言 什么是正则表达式? 正则表达式有什么用? 正则表达式的语法及使用实例 正则表达式语法有哪些? 这些正则到底该怎么用? 小结 参考文档 系列文章列表 引言 刚接触正则表达式,我也曾被它们天书 ...
- 判断ArryaList有没有重复对象的方法
ArrayList类是List类下一种常用的子类,如果要判断容器里面的对象是否有相等,有两种方法. 下面是自定义的一个Student类,假设容器里重复是按照对象的两个属性都相等. /** * @aut ...
- Android - AMS源码分析
Android核心分析之AMS App和AMS(SystemServer进程)还有zygote进程分属于三个独立的进程 App与AMS通过Binder进行IPC通信,AMS(SystemServer进 ...
- ThinkPHP中create()方法自动验证表单信息
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证 ...
- Python爬虫入门教程石家庄链家租房数据抓取
1. 写在前面 这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材.我们需要爬取的网址为:https://sjz.lianjia.com/zufang/ 2. 分析网 ...