示例#1
0
    /// <summary>
    /// 释放所有非强制引
    /// </summary>
    private void RelaseAllUnconstrainGrid()
    {
        List <uint> showGuideIDs = new List <uint>();

        showGuideIDs.AddRange(m_dic_showGuide.Keys);
        int max = showGuideIDs.Count;

        if (max > 0)
        {
            for (int i = 0; i < max; i++)
            {
                ResetGuide(showGuideIDs[i]);
            }
        }

        UIUnconstraintGrid grid = null;

        while (m_lst_cacheGuideGrid.Count > 0)
        {
            grid = m_lst_cacheGuideGrid[0];
            m_lst_cacheGuideGrid.RemoveAt(0);
            if (null != grid)
            {
                grid.Destroy();
            }
        }
    }
示例#2
0
    /// <summary>
    /// 缓存非常之引导
    /// </summary>
    /// <param name="grid"></param>
    private void CacheUnconstrainGrid(uint guideID)
    {
        UIUnconstraintGrid guideGrid = null;

        if (!TryGetUnconstrainGuide(guideID, out guideGrid))
        {
            return;
        }
        m_dic_showGuide.Remove(guideID);
        guideGrid.Release();
        if (guideGrid.Visible)
        {
            guideGrid.SetVisible(false);
        }
        if (!m_lst_cacheGuideGrid.Contains(guideGrid))
        {
            m_lst_cacheGuideGrid.Add(guideGrid);
        }
        if (m_lst_cacheGuideGrid.Count > CACHE_MAX_UNCONSTRAIN_NUM)
        {
            int needDestoryNum          = m_lst_cacheGuideGrid.Count - CACHE_MAX_UNCONSTRAIN_NUM;
            UIUnconstraintGrid tempGrid = null;
            for (int i = 0; i < needDestoryNum; i++)
            {
                tempGrid = m_lst_cacheGuideGrid[0];
                m_lst_cacheGuideGrid.RemoveAt(0);
                tempGrid.Destroy();
            }
        }
    }