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 +}