Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }