From d3b75a4e58436a0346973d4bc0180605947ace3a Mon Sep 17 00:00:00 2001
From: MuHua-123 <136542559+MuHua-123@users.noreply.github.com>
Date: Thu, 8 May 2025 09:47:41 +0800
Subject: [PATCH] Update ModuleUIItems.cs
---
.../Runtime/ModuleCoreUI/ModuleUIItems.cs | 27 ++++++++++---------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/Packages/UITool/Runtime/ModuleCoreUI/ModuleUIItems.cs b/Packages/UITool/Runtime/ModuleCoreUI/ModuleUIItems.cs
index 3464e06..395cb3e 100644
--- a/Packages/UITool/Runtime/ModuleCoreUI/ModuleUIItems.cs
+++ b/Packages/UITool/Runtime/ModuleCoreUI/ModuleUIItems.cs
@@ -8,17 +8,16 @@ namespace MuHua {
///
/// UI项容器
///
- public class ModuleUIItems : ModuleUIPanel where T : ModuleUIItem {
- public readonly VisualTreeAsset templateAsset;
- public readonly Func generate;
+ public class ModuleUIItems : ModuleUIPanel where TItem : ModuleUIItem {
+ public readonly VisualTreeAsset templateAsset;// 模板资源
+ public readonly Func generate;// 生成UI项的函数
- public List uiItems = new List();
+ public List uiItems = new List();// UI项列表
- /// 数据操作 uiItems[index];
+ public TItem this[int index] { get => uiItems[index]; }// 索引器
/// UI容器
- public ModuleUIItems(VisualElement element, VisualTreeAsset templateAsset, Func generate) : base(element) {
+ public ModuleUIItems(VisualElement element, VisualTreeAsset templateAsset, Func generate) : base(element) {
this.templateAsset = templateAsset;
this.generate = generate;
}
@@ -26,19 +25,23 @@ namespace MuHua {
public void Release() {
element.Clear();
uiItems.ForEach(obj => obj.Release());
- uiItems = new List();
+ uiItems = new List();
}
/// 创建UI项
- public void Create(List datas) {
+ public void Create(List datas) {
Release();
datas.ForEach(Create);
}
/// 创建UI项
- public void Create(Data data) {
+ public void Create(TData data) {
VisualElement element = templateAsset.Instantiate();
- T item = generate(data, element);
+ TItem item = generate(data, element);
this.element.Add(item.element);
uiItems.Add(item);
}
+ /// 遍历
+ public void ForEach(Action action) {
+ uiItems.ForEach(action);
+ }
}
-}
\ No newline at end of file
+}