From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 10 七月 2020 10:52:13 +0800
Subject: [PATCH] 2020-07-10-01

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs |   66 +++++++++++++++++++++++++++++----
 1 files changed, 58 insertions(+), 8 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
index 9d31add..282f443 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
@@ -31,7 +31,7 @@
             get
             {
                 int count = base.ChildrenCount;
-                if (frameBackTemp != null)
+                if (frameBackTemp != null && frameBackTemp.Parent != null)
                 {
                     count--;
                 }
@@ -49,7 +49,14 @@
         /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
         public VerticalListControl(int i_rowSpace = 0)
         {
-            rowSpace = Application.GetRealHeight(i_rowSpace);
+            this.rowSpace = Application.GetRealHeight(i_rowSpace);
+#if iOS
+            //鑷姩鍋忕Щ鍙栨秷
+            if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+            {
+                (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+            }
+#endif
         }
 
         #endregion
@@ -87,6 +94,9 @@
             if (this.maxHeight != -1)
             {
                 this.Height = this.maxHeight;
+#if iOS
+                this.ReLocation();
+#endif
             }
         }
 
@@ -97,16 +107,14 @@
         /// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
         public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
         {
-            int count = frameBackTemp == null ? this.ChildrenCount : this.ChildrenCount - 1;
+            //鎬讳箣,鍏堥噸缃嚦鏈�澶�
+            this.RecoverHeight();
+
+            int count = this.ChildrenCount;
             if (count <= 0)
             {
                 frameBackTemp?.RemoveFromParent();
                 frameBackTemp = null;
-                if (maxHeight != -1)
-                {
-                    //杩樺師涓烘渶澶ч珮搴�
-                    this.Height = maxHeight;
-                }
                 return;
             }
 
@@ -118,6 +126,9 @@
                 frameBackTemp = null;
                 //缂╁皬鎺т欢楂樺害
                 this.Height = realHeight;
+#if iOS
+                this.ReLocation();
+#endif
             }
             else if (addSpace == true && bottomSpace > 0 && realHeight > this.maxHeight)
             {
@@ -129,6 +140,45 @@
             }
         }
 
+        /// <summary>
+        /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+        /// </summary>
+        /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�,濡傛灉鍒楄〃鎺т欢鐪熷疄楂樺害娌℃湁瓒呰繃鏃�,浣跨敤姝ゅ��)</param>
+        /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+        public void AdjustRealHeightByBottomButton(int bottomSpace, int correctionsValue = 0)
+        {
+            if (this.ChildrenCount == 0)
+            {
+                frameBackTemp?.RemoveFromParent();
+                frameBackTemp = null;
+                if (maxHeight != -1)
+                {
+                    //杩樺師涓烘渶澶ч珮搴�
+                    this.Height = maxHeight;
+#if iOS
+                    this.ReLocation();
+#endif
+                }
+                return;
+            }
+            var realHeight = this.ChildrenCount * this.GetChildren(0).Height + this.Y + correctionsValue;
+            var btnTemp = new BottomClickButton();
+            if (btnTemp.Yaxis >= realHeight)
+            {
+                //娌℃湁瓒呰繃
+                this.AdjustRealHeight(bottomSpace);
+                return;
+            }
+            //瓒呰繃鏃�,閲嶇疆鑷虫渶澶�
+            this.RecoverHeight();
+
+            //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+            frameBackTemp?.RemoveFromParent();
+            frameBackTemp = new FrameLayout();
+            frameBackTemp.Height = ControlCommonResourse.BodyFrameHeight - btnTemp.Yaxis + bottomSpace;
+            this.AddChidren(frameBackTemp);
+        }
+
         #endregion
     }
 }

--
Gitblit v1.8.0