Ejemplo n.º 1
0
    /// <summary>
    /// 部件加载时
    /// </summary>
    protected override void OnViewPartLoaded()
    {
        if (GetTransform().GetComponentInParent <Canvas>() != null)
        {
            m_Camera = GetTransform().GetComponentInParent <Canvas>().worldCamera;
        }
        else
        {
            Debug.Log(GetTransform());
        }

        m_Scroller              = FindComponent <UIScrollRect>("Content/Scroller");
        m_ScrollerAnimator      = FindComponent <Animator>("Content/Scroller");
        m_ScrollerController    = m_Scroller.gameObject.GetComponent <UIStickScrollController>();
        m_ScrollerRectTransform = m_Scroller.GetComponent <RectTransform>();

        if (m_ScrollerController == null)
        {
            m_ScrollerController = m_Scroller.gameObject.AddComponent <UIStickScrollController>();
        }

        m_ScrollerController.SetFocused(OwnerView.Focused);

        LeftLabel   = FindComponent <TMP_Text>("Content/Scroller/Label_Tltle1");
        m_SortLabel = FindComponent <TMP_Text>("Content/Scroller/Label_Tltle2");

        if (m_Scroller)
        {
            m_Scroller.DataSorter                = this;
            m_Scroller.OnHeadRenderer            = OnHeadRenderer;
            m_Scroller.OnCellRenderer            = OnCellRenderer;
            m_Scroller.OnCellPlaceholderRenderer = OnCellPlaceholderRenderer;
            m_Scroller.OnNavigateCallback        = OnCellNavigateCallback;
            m_Scroller.OnClickCallback           = OnCellClickCallback;
            m_Scroller.OnDoubleClickCallback     = OnItemDoubleClick;
            m_Scroller.OnOverCallback            = OnCellOverCallback;
            m_Scroller.OnSelectionChanged        = OnSelectionChanged;
            m_Scroller.SetTemplateFactory(null);

            State.OnPageIndexChanged     -= OnPageChanged;
            State.OnPageIndexChanged     += OnPageChanged;
            State.OnSortIndexChanged     -= OnSortChanged;
            State.OnSortIndexChanged     += OnSortChanged;
            State.OnCategoryIndexChanged -= OnFilterChanged;
            State.OnCategoryIndexChanged += OnFilterChanged;

            State.OnLayoutStyleChanged -= OnLayoutStyleChanged;
            State.OnLayoutStyleChanged += OnLayoutStyleChanged;

            State.OnCompareModeChanged -= OnCompareModeChanged;
            State.OnCompareModeChanged += OnCompareModeChanged;

            State.GetAction(UIAction.Common_Sort).Callback -= OnSortKeyPress;
            State.GetAction(UIAction.Common_Sort).Callback += OnSortKeyPress;

            InitializePage();

            OnInputDeviceChanged(InputManager.Instance.CurrentInputDevice);
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 部件卸载时
    /// </summary>
    protected override void OnViewPartUnload()
    {
        State.OnPageIndexChanged     -= OnPageChanged;
        State.OnSortIndexChanged     -= OnSortChanged;
        State.OnCategoryIndexChanged -= OnFilterChanged;

        State.OnLayoutStyleChanged -= OnLayoutStyleChanged;
        State.OnCompareModeChanged -= OnCompareModeChanged;

        State.GetAction(UIAction.Common_Sort).Callback      -= OnSortKeyPress;
        State.GetAction(UIAction.Common_Grid_List).Callback -= OnToggleGridLayout;

        OwnerView.DeleteHotKey("LayoutMode");
        OwnerView.DeleteHotKey("CompareMode");

        m_Camera = null;

        if (m_Scroller)
        {
            m_Scroller.vertical = true;
            m_Scroller.ClearData();
            m_Scroller.DataSorter                = null;
            m_Scroller.OnHeadRenderer            = null;
            m_Scroller.OnCellRenderer            = null;
            m_Scroller.OnCellPlaceholderRenderer = null;
            m_Scroller.OnNavigateCallback        = null;
            m_Scroller.OnClickCallback           = null;
            m_Scroller.OnDoubleClickCallback     = null;
            m_Scroller.OnSelectionChanged       -= null;
            m_Scroller.SetTemplateFactory(null);
            m_Scroller = null;
        }

        if (m_ScrollerController)
        {
            m_ScrollerController.SetFocused(false);
            m_ScrollerController = null;
        }

        m_ScrollerAnimator      = null;
        m_ScrollerRectTransform = null;

        LeftLabel   = null;
        m_SortLabel = null;
    }