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. dashboard

    http://www.htmleaf.com/pins/chart-doc/index.html http://www.flotcharts.org/flot/examples/ https://gi ...

  2. C语言实现的Web服务器(转-kungstriving)

    自己研究了好几天终于写出来一个,哈哈,当然也从网上得到了很多的帮助拉.谢谢大家咯!这个版本还不是很完善,但Web服务器的基本框架已经出来了,还有部分的功能需要进行进一步的测试和修改.虽然说C的开发比较 ...

  3. LeetCode() Repeated DNA Sequences 看的非常的过瘾!

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  4. 【转载】MATLB绘图

    原文地址:http://www.cnblogs.com/hxsyl/archive/2012/10/10/2718380.html 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供 ...

  5. JS识记

    1.重新按照URL地址加载本页? window.location.reload(); 2.JS中实现命名空间一例? <script type="text/javascript" ...

  6. 【转载】开发备必:WEB前端开发规范文档

    规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必 须按本文档规范进行前台页面开发. 本文档如有不对或者 ...

  7. jquery跨域请求jsonp

    服务端PHP代码  header('Content-Type:application/json; charset=utf-8'); $arr = array('a'=>1, 'b'=>2, ...

  8. 解读(function($){...})(jQuery)

    function(arg){...}这就定义了一个匿名函数,参数为arg 而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(function(arg){.. ...

  9. ERROR 1130 (HY000):Host'localhost'解决方法

    http://www.2cto.com/database/201211/169504.html ERROR 1130 (HY000):Host'localhost'解决方法   ERROR 1130 ...

  10. SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

    SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...