困扰我好久的UGUI ScrollView扩容和排布--个人学习记录

写这个自己都感觉自己辣鸡。

先根据大佬说说组件吧。

Horizontal Layout Group是HorizontalOrVerticalLayoutGroup的子类,HorizontalOrVerticalLayoutGroup又是LayoutGroup的子类


图中包括以下属性: 
1、Padding:RectOffset类型,矩形偏移 
源码如下:

public sealed class RectOffset
{
    public RectOffset();
    public RectOffset(int left, int right, int top, int bottom);

    ~RectOffset();

    public int bottom { get; set; }       //底边缘
    public int horizontal { get; }        //水平
    public int left { get; set; }         //左边缘
    public int right { get; set; }        //右边缘
    public int top { get; set; }          //顶边缘
    public int vertical { get; }          //垂直

    public Rect Add(Rect rect);           //向一个Rect添加边框偏移
    public Rect Remove(Rect rect);        //从一个Rect移除边框偏移
    public override string ToString();      
}
Child Alignment:TextAnchor枚举类型,文本锚点 

源码如下:

public enum TextAnchor
{
    UpperLeft = 0,           //上左
    UpperCenter = 1,         //上中
    UpperRight = 2,          //上右
    MiddleLeft = 3,          //中左
    MiddleCenter = 4,        //中中
    MiddleRight = 5,         //中右
    LowerLeft = 6,           //下左
    LowerCenter = 7,         //下中
    LowerRight = 8           //下右
}

Child Force Expand:有两个可选 
(1)Width:是否强行扩大布局元素宽度以填补额外可用的空间 
(2)Height:是否强行扩大布局元素高度以填补额外可用的空间

勾选Width,填补宽度 ,勾选Height,填补高度 ,勾选Width和Height,填补宽度和高度 
实际开发中,经常结合Content Size Fitter组件一起使用 

Horizontal Fit和Vertical Fit均为UI.ContentSizeFitter.FitMode枚举类型,有三个值可选:Unconstrained,MinSize,PreferredSize

Unconstrained:不执行任何调整 
MinSize:调整内容的最小大小 
PreferredSize:调整内容的首选大小,也就是会自动根据内容来调整大小

使用Content Size Fitter组件,RectTransform组件会发生响应的变化 
默认情况下RectTransform组件的Width 和 Height 可以在编辑模式下就行修改,当Horizontal Fit不为Unconstrained时,Width不可修改,同理,Vertical Fit不为Unconstrained时,Height不可修改。

代码中,如果需要获取这个gameobject的Width 和Height,下图中提供了Preferred Height和Preferred Width的获取方式 


右下角可以看出数据的Source是Text组件,那么我们就可以通过GetComponent().PreferredWidth和PreferredHeight来获得。

当然不是所有情况,这两个数据的source都是Text!!!




Super ScrollView for UGUI提供基于UGUI ScrollRect的可轻松定制的ScrollView。它是一组C#脚本,可帮助您创建所需的ScrollView。这是非常强大的和高度优化的性能。 文件 Android演示应用程序 演示: - 聊天消息列表演示 - 水平画廊演示 - 垂直画廊演示 - GridView演示 - PageVew演示 - TreeVew演示 - 与稠粘头演示的TreeView - 旋转日期选择器 - 更改项目高度演示 - 下拉刷新演示 - 拉起来加载更多的演示 - 点击加载更多演示 - 选择并删除演示 - GridView删除项目演示 - 顶部到底部的演示 - 自下而上的演示 - 从左到右的演示 - 右侧演示 - 响应GridView演示 - TreeViewWithChildrenIndent演示 特征: - ListView和GridView和TreeView - 无限的项目 - 项目在不同的大小(高度/宽度) - 具有不同预制的物品 - 在初始时间大小未知的项目 - 垂直滚动视图(从上到下,从下到上) - 水平滚动视图(从左到右,从右到左) - 项目填充 - 滚动到指定的项目 - 滚动到具有偏移量的项目 - 项目计数在运行时更改 - 项目大小(高度/宽度)在运行时更改 - 物品捕捉到视口中的任何位置 - 项目循环,如微调 - 添加/删除项目 - 全部删除/删除所有项目 - 刷新并重新加载项目 - 使用池缓存项目,不要在运行时销毁项目 - 有效回收物品 - 平台无关 - UGUI支持 - 支持Unity平台(IOS / Android / Mac / PC / Console / Winphone / WebGL ...)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值