From b8e94316e41eba72d927d5ca7d931b26139ee8ff Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 15 六月 2020 09:12:53 +0800
Subject: [PATCH] 20200612

---
 Shared.IOS/UI/RowLayout.cs |  327 +++++++++++++++++++++++++-----------------------------
 1 files changed, 152 insertions(+), 175 deletions(-)

diff --git a/Shared.IOS/UI/RowLayout.cs b/Shared.IOS/UI/RowLayout.cs
index 252761d..558a638 100644
--- a/Shared.IOS/UI/RowLayout.cs
+++ b/Shared.IOS/UI/RowLayout.cs
@@ -6,127 +6,117 @@
 
 namespace Shared
 {
-    /// <summary>
-    /// 鍦ㄦ粦鍔ㄤ簨浠朵笅锛屽彲鏄剧ず闅愯棌浜涜嚜瀹氫箟瑙嗗浘
-    /// </summary>
-    public class RowLayout : ViewGroup
-    {
-        ///// <summary>
-        ///// OpenLeftMenuAction
-        ///// </summary>
-        //public Action OpenLeftMenuAction;
-        ///// <summary>
-        ///// OpenRightMenuAction
-        ///// </summary>
-        //public Action OpenRightMenuAction;
-
+	/// <summary>
+	/// 鍦ㄦ粦鍔ㄤ簨浠朵笅锛屽彲鏄剧ず闅愯棌浜涜嚜瀹氫箟瑙嗗浘
+	/// </summary>
+	public class RowLayout : ViewGroup
+	{
         /// <summary>
         /// OpenMenuAction
         /// </summary>
         public Action OpenMenuAction;
-
-
+        
         /// <summary>
         /// 鍙宠竟鐨勮鍥惧垪琛�
         /// </summary>
         internal System.Collections.Generic.List<Button> leftView = new System.Collections.Generic.List<Button>();
-        /// <summary>
-        /// 鍙宠竟鐨勮鍥惧垪琛�
-        /// </summary>
-        internal System.Collections.Generic.List<Button> rigthView = new System.Collections.Generic.List<Button>();
-        /// <summary>
-        /// 涓嬮潰閭h竟寮�
-        /// </summary>
-        UIView lineUIView = new UIView();
+		/// <summary>
+		/// 鍙宠竟鐨勮鍥惧垪琛�
+		/// </summary>
+		internal System.Collections.Generic.List<Button> rigthView = new System.Collections.Generic.List<Button>();
+		/// <summary>
+		/// 涓嬮潰閭h竟寮�
+		/// </summary>
+		UIView lineUIView = new UIView();
 
-        /// <summary>
-        /// 閲嶆柊鍒锋柊鎺т欢
-        /// </summary>
-        public override void Refresh()
-        {
-            base.Refresh();
-            LineColor = lineColor;
-        }
-        /// <summary>
-        /// 鎺т欢瀹藉害
-        /// </summary>
-        public override int Width
-        {
-            get
-            {
-                return base.Width;
-            }
-            set
-            {
-                base.Width = value;
-                if (!IsCanRefresh)
-                    return;
+		/// <summary>
+		/// 閲嶆柊鍒锋柊鎺т欢
+		/// </summary>
+		public override void Refresh()
+		{
+			base.Refresh();
+			LineColor = lineColor;
+		}
+		/// <summary>
+		/// 鎺т欢瀹藉害
+		/// </summary>
+		public override int Width
+		{
+			get
+			{
+				return base.Width;
+			}
+			set
+			{
+				base.Width = value;
+				if (!IsCanRefresh)
+					return;
 
-                var frame4 = lineUIView.Frame;
-                frame4.Width = base.Width;
-                lineUIView.Frame = frame4;
-            }
-        }
+				var frame4 = lineUIView.Frame;
+				frame4.Width = base.Width;
+				lineUIView.Frame = frame4;
+			}
+		}
 
-        /// <summary>
-        /// 瀛愯鍥剧殑瀹藉害
-        /// </summary>
-        public int SubViewWidth = 70;
+		/// <summary>
+		/// 瀛愯鍥剧殑瀹藉害
+		/// </summary>
+		public int SubViewWidth = 70;
 
-        /// <summary>
-        /// 鎺т欢鐨勯珮搴�
-        /// </summary>
-        /// <value>The height.</value>
-        public override int Height
-        {
-            get
-            {
-                return base.Height;
-            }
-            set
-            {
-                base.Height = value;
-                if (!IsCanRefresh)
-                    return;
+		/// <summary>
+		/// 鎺т欢鐨勯珮搴�
+		/// </summary>
+		/// <value>The height.</value>
+		public override int Height
+		{
+			get
+			{
+				return base.Height;
+			}
+			set
+			{
+				base.Height = value;
+				if (!IsCanRefresh)
+					return;
 
-                {
-                    var frame = realViewGroup.Frame;
-                    frame.Height = Height;
-                    realViewGroup.Frame = frame;
-                }
+				{
+					var frame = realViewGroup.Frame;
+					frame.Height = Height;
+					realViewGroup.Frame = frame;
+				}
 
-                var frame4 = lineUIView.Frame;
-                frame4.Y = base.Height - frame4.Height;
-                lineUIView.Frame = frame4;
-            }
-        }
+				var frame4 = lineUIView.Frame;
+				frame4.Y = base.Height - frame4.Height;
+				lineUIView.Frame = frame4;
+			}
+		}
 
-        uint lineColor = 0x80818181;
-        /// <summary>
-        /// 鑳屾櫙棰滆壊
-        /// </summary>
-        /// <value>The color of the background.</value>
-        public virtual uint LineColor
-        {
-            get
-            {
-                return lineColor;
-            }
-            set
-            {
-                lineColor = value;
-                if (!IsCanRefresh)
-                {
-                    return;
-                }
-                byte r, g, b, a;
-                r = (byte)(lineColor / 256 / 256 % 256);
-                g = (byte)(lineColor / 256 % 256);
-                b = (byte)(lineColor % 256);
-                a = (byte)(lineColor / 256 / 256 / 256 % 256);
-                lineUIView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
-            }
-        }
+		uint lineColor = 0x80818181;
+		/// <summary>
+		/// 鑳屾櫙棰滆壊
+		/// </summary>
+		/// <value>The color of the background.</value>
+		public virtual uint LineColor
+		{
+			get
+			{
+				return lineColor;
+			}
+			set
+			{
+				lineColor = value;
+				if (!IsCanRefresh)
+				{
+					return;
+				}
+				byte r, g, b, a;
+				r = (byte)(lineColor / 256 / 256 % 256);
+				g = (byte)(lineColor / 256 % 256);
+				b = (byte)(lineColor % 256);
+				a = (byte)(lineColor / 256 / 256 / 256 % 256);
+				lineUIView.BackgroundColor = UIKit.UIColor.FromRGBA(r, g, b, a);
+			}
+		}
 
         /// <summary>
         /// 鏄惁姝f墦寮�
@@ -191,9 +181,9 @@
             if (leftView.Count == 0)
                 return;
 
-
+           
             IsShowLeft = true;
-            (viewGroup as UIScrollView).SetContentOffset(new CGPoint(leftView[0].RealView.Frame.X, 0), false);
+            (viewGroup as UIScrollView).SetContentOffset(new CGPoint(leftView[0].RealView.Frame.X, 0), true);
             OpenMenuAction?.Invoke();
         }
 
@@ -215,7 +205,7 @@
                 return;
             IsShowRight = true;
             var rigthViewX = realViewGroup.Frame.X + GetAllRightViewWidth();
-            (viewGroup as UIScrollView).SetContentOffset(new CGPoint(rigthViewX, 0), false);
+            (viewGroup as UIScrollView).SetContentOffset(new CGPoint(rigthViewX, 0), true);
             OpenMenuAction?.Invoke();
 
         }
@@ -227,8 +217,7 @@
             HideAllMenuView();
         }
 
-        void RestMenuView()
-        {
+        void RestMenuView() {
             if (IsShowRight)
             {
                 OpenRightMenu();
@@ -238,11 +227,10 @@
                 OpenLeftMenu();
 
             }
-            else
-            {
+            else {
                 HideAllMenuView();
             }
-
+          
         }
 
         void HideAllMenuView()
@@ -272,8 +260,7 @@
         /// 鑾峰彇褰撳墠leftView鐨勬�诲
         /// </summary>
         /// <returns></returns>
-        int GetAllLeftViewWidth()
-        {
+        int GetAllLeftViewWidth() {
             int mWidth = 0;
             foreach (var mView in leftView)
             {
@@ -302,39 +289,34 @@
         /// </summary>
         /// <param name="view">View.</param>
         public void AddLeftView(Button view)
-        {
-            if (null == view)
-            {
-                return;
-            }
+		{
+			if (null == view)
+			{
+				return;
+			}
 
             var mSubViewWidth = isUseSameSubViewWidth ? SubViewWidth : view.Width;
 
             view.X = GetAllLeftViewWidth();
-            view.Y = 0;
-            view.Width = mSubViewWidth;
-            view.Height = Height;
-            viewGroup.AddSubview(view.RealView);
-            view.Parent = this;
-            view.Refresh();
-            leftView.Add(view);
-            var frame = realViewGroup.Frame;
-            frame.X += mSubViewWidth;
-            realViewGroup.Frame = frame;
-            foreach (var right in rigthView)
-            {
-                right.X += mSubViewWidth;
-            }
+			view.Y = 0;
+			view.Width = mSubViewWidth;
+			view.Height = Height;
+			viewGroup.AddSubview(view.RealView);
+			view.Parent = this;
+			view.Refresh();
+			leftView.Add(view);
+			var frame = realViewGroup.Frame;
+			frame.X += mSubViewWidth;
+			realViewGroup.Frame = frame;
+			foreach (var right in rigthView)
+			{
+				right.X += mSubViewWidth;
+			}
 
             RefreshContentSize();
+		}
 
-            //         var menuWidth = GetAllLeftViewWidth() + GetAllRightViewWidth();
-            //         (viewGroup as UIScrollView).ContentSize = new CoreGraphics.CGSize(menuWidth + realViewGroup.Frame.Width, 0);
-            //(viewGroup as UIScrollView).SetContentOffset(new CGPoint(realViewGroup.Frame.X, 0), false);
-        }
-
-        void RefreshContentSize()
-        {
+        void RefreshContentSize() {
             var menuWidth = GetAllLeftViewWidth() + GetAllRightViewWidth();
             (viewGroup as UIScrollView).ContentSize = new CoreGraphics.CGSize(menuWidth + realViewGroup.Frame.Width, 0);
             (viewGroup as UIScrollView).SetContentOffset(new CGPoint(realViewGroup.Frame.X, 0), false);
@@ -358,28 +340,24 @@
         /// </summary>
         /// <param name="view">View.</param>
         public void AddRightView(Button view)
-        {
-            if (null == view)
-            {
-                return;
-            }
+		{
+           if (null == view)
+			{
+				return;
+			}
             var mSubViewWidth = isUseSameSubViewWidth ? SubViewWidth : view.Width;
 
-            view.X = (int)realViewGroup.Frame.Right + GetAllRightViewWidth();
-            view.Y = 0;
-            view.Width = mSubViewWidth;
-            view.Height = Height;
-            viewGroup.AddSubview(view.RealView);
-            view.Parent = this;
-            view.Refresh();
-            rigthView.Add(view);
+            view.X =(int)realViewGroup.Frame.Right + GetAllRightViewWidth();
+			view.Y = 0;
+			view.Width = mSubViewWidth;
+			view.Height = Height;
+			viewGroup.AddSubview(view.RealView);
+			view.Parent = this;
+			view.Refresh();
+			rigthView.Add(view);
 
             RefreshContentSize();
-
-            //         (viewGroup as UIScrollView).ContentSize = new CoreGraphics.CGSize((leftView.Count + rigthView.Count) * SubViewWidth + realViewGroup.Frame.Width, 0);
-            //(viewGroup as UIScrollView).SetContentOffset(new CGPoint(realViewGroup.Frame.X, 0), false);
-
-        }
+		}
 
         nfloat beforeXScrollX;
         nfloat moveX;
@@ -387,22 +365,22 @@
         /// 鍦ㄦ粦鍔ㄤ簨浠朵笅锛屽彲鏄剧ず闅愯棌浜涜嚜瀹氫箟瑙嗗浘
         /// </summary>
         public RowLayout()
-        {
+		{
             viewGroup = new UIScrollView { Bounces = false };
             realViewGroup = new MyRowLayout(this) { };
+            
+			viewGroup.AddSubview(realViewGroup);
+			viewGroup.Layer.MasksToBounds = true;
 
-            viewGroup.AddSubview(realViewGroup);
-            viewGroup.Layer.MasksToBounds = true;
-
-            lineUIView.BackgroundColor = new UIColor(0x81 / 255.0f, 0x81 / 255.0f, 0x81 / 255.0f, 0.8f);
-            var lineUIViewFrame = lineUIView.Frame;
-            lineUIViewFrame.Height = 1.0f;
-            lineUIView.Frame = lineUIViewFrame;
-            viewGroup.AddSubview(lineUIView);
+			lineUIView.BackgroundColor = new UIColor(0x81 / 255.0f, 0x81 / 255.0f, 0x81 / 255.0f, 0.8f);
+			var lineUIViewFrame = lineUIView.Frame;
+			lineUIViewFrame.Height = 1.0f;
+			lineUIView.Frame = lineUIViewFrame;
+			viewGroup.AddSubview(lineUIView);
 
             (viewGroup as UIScrollView).ShowsHorizontalScrollIndicator = false;//闅愯棌姘村钩婊氬姩鏉�
 
-
+           
             (viewGroup as UIScrollView).Scrolled += (s, e) =>
             {
                 moveX = (viewGroup as UIScrollView).ContentOffset.X - beforeXScrollX;
@@ -413,14 +391,14 @@
                 beforeXScrollX = (viewGroup as UIScrollView).ContentOffset.X;
             };
 
-            (viewGroup as UIScrollView).DecelerationStarted += (s, e) =>
+            (viewGroup as UIScrollView). DecelerationStarted += (s, e) =>
             {
-
+              
                 GetMovePageIndex();
 
             };
 
-
+           
 
             (viewGroup as UIScrollView).DraggingEnded += (s, e) =>
             {
@@ -432,8 +410,7 @@
 
         }
 
-        void GetMovePageIndex()
-        {
+        void GetMovePageIndex(){
 
             if (20 < Math.Abs(moveX))
             {

--
Gitblit v1.8.0