From d9e8e2e26b7481c31bd7a1c530dc794ded92eada Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Fri, 17 Jul 2020 09:26:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96`Chart`=E6=94=BE=E5=9C=A8`Scr?= =?UTF-8?q?ollView`=E4=B8=8B=E6=97=B6=E4=B8=8D=E5=BD=B1=E5=93=8D`ScrollVie?= =?UTF-8?q?w`=E7=9A=84=E6=BB=9A=E5=8A=A8=E5=92=8C=E6=8B=96=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG-EN.md | 3 +++ CHANGELOG.md | 4 ++-- Runtime/Internal/BaseChart.cs | 1 + Runtime/Internal/BaseGraphic.cs | 12 ++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG-EN.md b/CHANGELOG-EN.md index aba2b6c1..4b3ba41e 100644 --- a/CHANGELOG-EN.md +++ b/CHANGELOG-EN.md @@ -1,6 +1,9 @@ # 更新日志 +* (2020.07.17) Optimize `Chart` under `ScrollView` without affecting the scrolling and dragging of `ScrollView`. +* (2020.07.16) Fixed a problem with `Tooltip` that would also show up if it was blocked on top. #74 +* (2020.07.08) 优化`Scatter`类型`Serie`支持`Log`轴#70 * (2020.07.07) 修复`SerieLabel`位置错乱的问题 * (2020.07.07) 增加`Tooltip`的`offset`参数配置偏移 * (2020.07.06) 增加`LiquidChart`水位图 diff --git a/CHANGELOG.md b/CHANGELOG.md index b30e2e3a..d91c6167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # 更新日志 -* (2020.07.16) Fixed a problem with `Tooltip` that would also show up if it was blocked on top. #74 - 修复`Tooltip`在上层有遮挡还会显示的问题#74 +* (2020.07.17) 优化`Chart`放在`ScrollView`下时不影响`ScrollView`的滚动和拖动 +* (2020.07.16) 修复`Tooltip`在上层有遮挡还会显示的问题#74 * (2020.07.08) 优化`Scatter`类型`Serie`支持`Log`轴#70 * (2020.07.07) 修复`SerieLabel`位置错乱的问题 * (2020.07.07) 增加`Tooltip`的`offset`参数配置偏移 diff --git a/Runtime/Internal/BaseChart.cs b/Runtime/Internal/BaseChart.cs index fdbfb046..9ec7ae21 100644 --- a/Runtime/Internal/BaseChart.cs +++ b/Runtime/Internal/BaseChart.cs @@ -96,6 +96,7 @@ namespace XCharts raycastTarget = false; m_CheckTheme = m_ThemeInfo.theme; m_LastLocalPosition = transform.localPosition; + CheckIsInScrollRect(); UpdateSize(); InitComponent(); m_Series.AnimationReset(); diff --git a/Runtime/Internal/BaseGraphic.cs b/Runtime/Internal/BaseGraphic.cs index c85f02d4..d20e7555 100644 --- a/Runtime/Internal/BaseGraphic.cs +++ b/Runtime/Internal/BaseGraphic.cs @@ -48,6 +48,8 @@ namespace XCharts protected Vector2 chartPivot { get { return m_GraphPivot; } } protected HideFlags chartHideFlags { get { return m_DebugMode ? HideFlags.None : HideFlags.HideInHierarchy; } } + private ScrollRect m_ScrollRect; + protected virtual void InitComponent() { @@ -63,6 +65,7 @@ namespace XCharts m_LastLocalPosition = transform.localPosition; UpdateSize(); InitComponent(); + CheckIsInScrollRect(); } protected override void Start() @@ -180,6 +183,11 @@ namespace XCharts } } + protected virtual void CheckIsInScrollRect() + { + m_ScrollRect = GetComponentInParent(); + } + protected virtual bool IsNeedCheckPointerPos() { return raycastTarget; @@ -247,21 +255,25 @@ namespace XCharts public virtual void OnBeginDrag(PointerEventData eventData) { + if (m_ScrollRect != null) m_ScrollRect.OnBeginDrag(eventData); if (m_OnBeginDrag != null) m_OnBeginDrag(this, eventData); } public virtual void OnEndDrag(PointerEventData eventData) { + if (m_ScrollRect != null) m_ScrollRect.OnEndDrag(eventData); if (m_OnEndDrag != null) m_OnEndDrag(this, eventData); } public virtual void OnDrag(PointerEventData eventData) { + if (m_ScrollRect != null) m_ScrollRect.OnDrag(eventData); if (m_OnDrag != null) m_OnDrag(this, eventData); } public virtual void OnScroll(PointerEventData eventData) { + if (m_ScrollRect != null) m_ScrollRect.OnScroll(eventData); if (m_OnScroll != null) m_OnScroll(this, eventData); } }