1顶级父类加boxCollider和UIDragScrollView脚本保证在item拖走后也能通过拖拽剩余区域的方式操作。

2下一级添加UIPanel在Clipping设定区域,注意如果设定softClip就不能保证item填满,会从alpha值为1的地方开始填充。
3添加UIScrollView脚本和SpringPanel脚本(如果位置不是zero要在SpringPanel中设置)。
4再下级如要保证item位置总是合适则添加UICenterOnChild脚本(如果添加则不能保证充满),如要自动排列item则添加UIGrid脚本,注意此级的位置,他的位置会决定自动排列的item的起始位置。
5item级如果有boxCollider则要添加UIDragScrollView脚本,保证拖动item时也能响应。
6item级如果有boxCollider可以添加UICenterOnClick脚本通过点击使自己居中。
 
 

在NGUI中,ScrollView是一个非常棒的界面,不过刚开始使用的时候一直一些事项没有搞懂,现在算是明白了,可以轻松上手了,下面把一些注意的问题写出来分享一下。

一个是回弹问题,开始做的时候,一直没有明白例子中那个回弹的效果是如何实现,如图这样的效果

确实这个效果在IOS上非常流行,用户体验也很棒,它的原理也是利用一个UIDragPanelContents代码控件完成的。

在window的UIPanel里面有这么一个物体Outline,在例子界面上的作用是一个ScrollView背景,之所以可以回弹全靠这个,点击这个物体,给它添加一个Collier和UIDragPanelContents,将Draggable Panel属性设置为Clipped View即可看到效果了,记住这个背景最好放大些,这样手指只要在这个背景的区域内都可以滑动ScrollView了。

如果在自己的界面中不想看到这层背景,但是没有这层又不行,最好的方法就是把这层的Alpha值设为0,这样就变成透明的了,也就看不到了

当然,如果你的里面放置的仅仅是文本图片之类的,基本就结束了,但是如果是响应的控件,比如按钮,可以会有无法响应的问题,就是可以滑动,但是按钮无法被点击,造成的原因其实是Collider的前后关系,这层触摸背景的Collider比按钮的Collider要靠前,造成触发器先接受到了,所以按钮就不响应了。

解决办法就是把触摸背景这层的Z轴放后一些,放在按钮的后面,这样问题就可以解决了。

二是ScrollView里面的Item没有被装满却可以被拉动,会造成Item的位置改变而无法回复原位,如果不想被拉动,只有里面的Item超过了显示界面才可以被拉动,只需要勾上ScrollViewPanel上的Disable Drag If Fits即可。

NGUI ScrollView总结的更多相关文章

  1. NGUI ScrollView 循环 Item 实现性能优化

    今天来说说一直都让我在项目中头疼的其中一个问题,NGUI 的scrollView 列表性能问题,实现循环使用item减少性能上的开销. 希望能够给其他同学们使用和提供一个我个人的思路,这个写的不是太完 ...

  2. NGUI ScrollView中的Bounds

    获取到的Bounds值是固定的,是因为Bounds区域的计算是被动计算,需要主动调用使其刷新 scrollView.InvalidateBounds(); 另外Bounds的Min和Max似乎和NGU ...

  3. NGUI ScrollView动态加入和删除对象。

    动态加入,基本思想是: 1.先把要加入的元素在编辑器中编辑好,制作成一个prefab. 2.在代码中,动态的生成一个新的对象增加到Grid对象的子对象中.这里利用到了Resources对象,这个对象的 ...

  4. NGUI ScrollView出屏幕再回来坐标混乱解决

    主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true);

  5. NGUI ScrollView中MoveRelative,Scroll的区别

    Scroll会计算边界,和直接拖拽的效果类似 MoveRelative不计算边界,超出边界了也不会管,也不会应用缓动效果

  6. NGUI研究之开发项目的一些使用心得比較细节

     不知不觉使用NGI插件已经有一段时间了.感觉NGUI真的是眼下Unity3D中最好用的UI插件. 可是它也有一些不是BUG的BUG,这些问题可能会让新人摸不着头脑,那么这篇文章将总结一下这段时间 ...

  7. NGUI List优化

    腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...

  8. 使用泛型简单封装NGUI的ScrollView实现滑动列表

    懒,是老毛病了,周末跑了半马,跑完也是一通累,好久没锻炼了..也是懒的,有时都懒的写博客..最近看到项目中各种滑动列表框,本着要懒出水平来的原则,决定花点时间简单处理下(暂时未做列表太多时的优化):1 ...

  9. [Unity]Unity开发NGUI代码实现ScrollView(放大视图)

    Unity开发NGUI代码实现ScrollView(放大视图) 下载NGUI包 导入NGUI3.9.1版本package 创建MainCameraScript.cs脚本 MainCameraScrip ...

随机推荐

  1. 378. Kth Smallest Element in a Sorted Matrix

    Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...

  2. ADC 电源监测

    我能为别人做点什么?这是我最近在思考的问题. 看了 ADC 电源监测代码,觉得对 ADC 的理解不到位,代码中有很多部分都不懂.如: 1. 为什么初始化的时候管脚设置为输出? 2. ADC 采集到的值 ...

  3. Mysql逻辑模块组成

    总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query c ...

  4. shell终极操作

    1.安装zsh Mac : 直接看下一节 Redhat/centos :sudo yum install zsh Ubuntu :sudo apt-get install zsh 2.安装oh my ...

  5. [经验交流] 简单安装 centreon 3.2

    centreon 是一个自动化监控平台,监控数据存储在 mysql 中,监控配置在UI中操作,方便且功能强大. 1. centreon 监控引擎 centreon 可以与 nagios 结合,使用 n ...

  6. ADF_Data Binding系列1_使用Bean Data Control

    2015-02-16 Created By BaoXinjian

  7. 预处理语句--#define、#error和#warning

    1.#define语句 我们经常会这样定义一些宏:       #define BLOCK 8192 但这样的宏却不能在字符串中展开,如:    printf("The BLOCK numb ...

  8. 通过DOM节点操作来获取表单信息

    这是之前突发奇想地用dom节点的关系来操作表单的故事.. 事情的经过是这样的,大概就是一个平台注册后有留言功能,管理员登录之后可以对这些留言进行回复.这个页面呢,就是通过foreach获取到数据库里的 ...

  9. XE6移动开发环境搭建之IOS篇(4):VMware9里安装Mac OSX 10.8(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 以下内容比较长,我们 ...

  10. Hardmard 变换

    阿达马(Hadamard)矩阵是由+1和-1元素构成的正交方阵.阿达马变换多被用来计算SATD(一种视频残差信号大小的衡量). 这里介绍三个内容,1. SATD 2. H264中阿达马的应用 3. 阿 ...