public void OnEndDrag(PointerEventData eventData)
        {
            //Drag值超出伐值,不能再响应click
            if (_canClick && BelongedForm != null && BelongedForm.ChangeScreenValueToForm(Vector2.Distance(eventData.position, _downPosition)) > _clickAreaValue)
            {
                _canClick = false;
            }

            //派发事件
            if (onDragEnd != null)
            {
                onDragEnd.Invoke(eventData);
            }
            //冒泡
            if (BelongedListView != null && BelongedListView.m_scrollRect != null)
            {
                BelongedListView.m_scrollRect.OnEndDrag(eventData);
            }
            if (DragNext != null)
            {
                DragNext.OnEndDrag(eventData);
            }
            //clear输入状态
            ClearInputStatus();
        }
Example #2
0
 public void OnEnable()
 {
     if (BelongedForm != null)
     {
         SetSortingOrder(BelongedForm.GetSortingOrder());
     }
 }
        public void OnDrag(PointerEventData eventData)
        {
            //Drag值超出伐值,不能再响应click
            if (_canClick && BelongedForm != null && BelongedForm.ChangeScreenValueToForm(Vector2.Distance(eventData.position, _downPosition)) > _clickAreaValue)
            {
                _canClick = false;
            }
            //Drag值超出伐值,不能再响应click
            if (Vector2.SqrMagnitude(eventData.position - _downPosition) > 1200)
            {
                _canClick = false;
            }

            //派发事件
            if (onDrag != null)
            {
                onDrag.Invoke(eventData);
            }
            //冒泡
            if (BelongedListView != null && BelongedListView.m_scrollRect != null)
            {
                BelongedListView.m_scrollRect.OnDrag(eventData);
            }
            //
            if (DragNext != null)
            {
                DragNext.OnDrag(eventData);
            }
        }
        protected virtual void Update()
        {
            if (BelongedForm != null && BelongedForm.IsClosed())
            {
                return;
            }
            //优化模式
            if (m_useOptimized)
            {
                UpdateElementsScroll();
            }

            //屏蔽滚动
            if (m_scrollRect != null && !m_scrollExternal)
            {
                if (m_contentSize.x > m_scrollAreaSize.x || m_contentSize.y > m_scrollAreaSize.y)
                {
                    if (!m_scrollRect.enabled)
                    {
                        m_scrollRect.enabled = true;
                    }
                }
                else
                {
                    if (Mathf.Abs(m_contentRectTransform.anchoredPosition.x) < 0.001 && Mathf.Abs(m_contentRectTransform.anchoredPosition.y) < 0.001)
                    {
                        if (m_scrollRect.enabled)
                        {
                            m_scrollRect.enabled = false;
                        }
                    }
                }

                DetectScroll();
            }
        }