Unity3d NGUI的使用(九)(UIScrollView制作滑动列表)

本文介绍如何使用 UIScrollView 在 Unity 中创建可横向或竖直滑动的列表。包括 UI 组件配置、面板属性设置、网格布局应用等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内

UIScrollVIew只是一个可滑动的UI组件

如果需要制作复杂的可视区域UI需要配合使用UIPanel与UIGrid


这样更方便UI的展示


a.创建一个2D UI Root,在NGUI菜单上创建一个Scroll View


b.在ScrollView上默认的为我们添加了一个UIPanel与UIScrollView


Alpha:面板的透明度

Depth:面板在所有UI上的层次等级

Clipping:面板剪切,分为None(无剪切效果),Soft Clip(软剪切,有边缘模糊效果),Alpha Clip(硬剪切,边缘锋利)

Constrain But Don't Clip(显示所有内容,但是是剪切区域存在)

Advanced Options:高级选项

Render Q:面板里所有图片的渲染质量,Automatic(自动适应),Normal(正常),Explicit(用户指定)

Normals:法线贴图

Cull:如果用鼠标手动组件则剔除组件

Visible:面板是否在可视范围内

Offset:通过位置偏离锚点

Static:如果是没移动的组件,也进行代码检测,一般是用于ScrollView

Panel Tool:是否显示面板工具

Show Draw Calls:显示渲染的详细信息



Content Origin:滚动内容的起始点位置

Movement:移动方向

Drag Effect:内容拖动时候显示的效果

Scroll Wheel Factor:使用鼠标进行滚动时,滚动时候的比例

Momentum Amount:快速滑动时产生的冲力

Restrict Within Panel:在面板里进行约束

Cancel Drag if Fits:如果有组件适应了面板的大小,取消组件在面板里的拖动

Smooth Drag Start:平滑拖动

IOS Drag Emulation:在苹果上仿真滑动效果

Scroll Bars:在进行拖动时,可以加入一个Scroll Bars来控制或者显示进度

c.在NGUI菜单上添加一个Grid到ScrollView组下


d.设置UIGrid


Arrangement:表格的显示方向

Sorting:对表格内的内容进行排序,Alphabetic(以字母顺序排序),Horizontal(水平方向进行排序),

Vettical(垂直方向进行排序),Custom(自定义的排序)

Max Per Line:表格每行显示多少个元素

Cell Widht:单个显示的宽度

Cell Height:单个显示的高度

Animate Smoothly:使用平滑动画过度效果

Keep Within Panel:保持在一个面板里显示

e.添加一些元素到UIGrid组下,并设置好位置,配合UIPanel的Soft Clip可

以让元素在一定的可范围内显示


这样一个简单的列表显示效果就做出来了

:)

### 自定义 Element Plus 输入框样式的实现方法 为了自定义 Element Plus 的输入框样式,可以通过覆盖默认的 CSS 类来完成。以下是具体的方法: #### 方法一:通过全局样式调整 `.el-input` 和其子组件 可以利用提供的全局样式代码作为基础[^1],并进一步扩展或修改它以满足需求。例如,在项目中的 `style.css` 或者 `<style>` 标签中添加如下代码: ```css /* 调整整个表单项的位置 */ .el-form-item { position: relative; } .newLable /deep/ .el-form-item__label { position: absolute; z-index: 99; opacity: 0.8; justify-content: flex-start; transition: all 0.2s ease-in-out; color: #c9bfbf; margin-left: 10px; height: 1rem; align-items: center; margin-top: 0.5rem; -webkit-background-clip: content-box !important; background-clip: content-box !important; } .newLable /deep/ .el-input__inner::placeholder { opacity: 0; } ``` 上述代码会改变标签的行为以及占位符的显示效果。 --- #### 方法二:针对特定场景单独设置类名 如果仅希望某些输入框具有特殊样式,则可以在模板中为这些输入框指定额外的类名,并在样式文件中对其进行定制化处理。例如: ```html <template> <div class="custom-style"> <el-input v-model="inputValue" /> </div> </template> <style scoped> .custom-style .el-input__inner { border-radius: 20px; /* 圆角边框 */ padding: 10px 20px; /* 增加内边距 */ font-size: 16px; /* 字体大小 */ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 添加阴影 */ } .custom-style .el-input__inner:focus { outline: none; /* 移除聚焦时的外边框 */ box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); /* 修改焦点状态下的阴影 */ } </style> ``` 此方式适用于局部范围内的样式更改,不会影响其他地方使用的标准输入框。 --- #### 方法三:结合 JavaScript 动态控制样式 当需要动态响应用户的交互行为(如点击事件触发样式变更),可借助 Vue.js 提供的数据绑定机制或者原生 DOM 操作技术。下面是一个简单的例子展示如何监听输入框的变化[^3]: ```javascript methods: { onInputChange(event) { const inputValue = event.target.value.trim(); if (inputValue.length > 0) { this.$refs.inputBox.classList.add('has-value'); } else { this.$refs.inputBox.classList.remove('has-value'); } }, }, ``` 配合对应的 HTML 结构和样式规则: ```html <div ref="inputBox" @input="onInputChange"> <el-input v-model="inputText"></el-input> </div> <style> .has-value .el-input__inner { border-color: green; /* 当有值时改变颜色 */ } </style> ``` 以上逻辑实现了基于内容长度切换不同视觉表现的功能。 --- ### 总结 无论是采用静态声明还是运行时期间实时更新的方式都可以很好地达成目标——即灵活地调整 Element Plus 组件库里的输入控件外观特性。最终选择哪种方案取决于实际应用场景和个人偏好等因素考虑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值