protected override void UpdateView() { base.UpdateView(); int length = _data != null ? _data.Length : 0; if (length <= 0) { ClearData(); return; } for (int i = 0; i < length; i++) { UIToggle toggle; toggle = _toggleCache.PushRender(i); toggle.group = _groupId; EventDelegate.Add(toggle.onChange, TabOnChange); if (i == 0) { toggle.startsActive = true; } UIToggleRender tRender = toggle.GetComponent <UIToggleRender>(); if (tRender != null) { tRender.data = _data[i]; tRender.owner = this; } } _toggleCache.Release(); table.Reposition(); }
protected override void UpdateView() { base.UpdateView(); int length = _data != null ? _data.Length : 0; if (length <= 0) { _currentTabIndex = -1; return; } for (int i = 0; i < length; i++) { UIToggle tabtoggle; GameObject pagerender; tabtoggle = _tabCache.PushRender(i); pagerender = _pageCache.PushRender(i); // 重置页面 Vertical ScrollView ResetScrollView(pagerender, true); // 配置标签Id和回调 tabtoggle.group = _groupId; EventDelegate.Add(tabtoggle.onChange, TabOnChange); // 首次刷新,默认选中第一个标签 if (i == 0) { tabtoggle.startsActive = true; UIWidget widget = tabtoggle.GetComponent <UIWidget>(); if (widget) { _renderWidth = widget.width; } SetTargetScrollView(pagerender); } // 初始化 tab & page renders 数据 TabPageRender tRender = tabtoggle.GetComponent <TabPageRender>(); TabPageRender pRender = pagerender.GetComponent <TabPageRender>(); tRender.data = _data[i]; tRender.owner = this; pRender.data = _data[i]; pRender.owner = this; } // 滚动到具体的标签页面,延迟0.5s if (_tabId > 0 && _tabId != _currentTabIndex) { FUtil.SetTimeout(gameObject, delegate() { MoveToTab(_tabId); }, 0.5f, "GotoTab"); } // 删除多余的标签和页面 _tabCache.Release(); _pageCache.Release(); // 重置标签位置和小箭头状态 ResetScrollView(_tabScrollView.gameObject, false); // 若标签数量未铺满标签面板,则禁止拖动 if (_tabScrollView && length <= tabPanelSize) { _tabScrollView.enabled = false; } else { _tabScrollView.enabled = true; } // Table自适应 tabTable.Reposition(); pageTable.Reposition(); }