xm
2019-07-16 b910cb79c9b5bcc204022a3cf9e6950f0a64dfbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using UIKit;
using Shared.IO;
 
namespace Shared
{
    /// <summary>
    /// 位置布局
    /// </summary>
    public  class HorizontalScrolViewLayout:ViewGroup
    {
        
        /// <summary>
        /// 构造函数
        /// </summary>
        public HorizontalScrolViewLayout()
        {               
            viewGroup = new MyUIScrolView(this);
            realViewGroup = viewGroup;
        }
        /// <summary>
        /// 增加子视图
        /// </summary>
        /// <returns>The chidren.</returns>
        /// <param name="view">View.</param>
        public override void AddChidren(View view)
        {
            base.AddChidren(view);
            ReLocation();
        }
 
        /// <summary>
        /// 重新排位置及设备内容大小
        /// </summary>
        public virtual void ReLocation()
        {
            if (0 == viewList.Count)
            {
                return;
            }
            for (int i = 1; i < viewList.Count; i++)
            {
                var frame = viewList[i].RealView.Frame;
                frame.X = viewList[i - 1].RealView.Frame.Right;
                viewList[i].RealView.Frame = frame;
            }
 
            (realViewGroup as MyUIScrolView).ContentSize = new CoreGraphics.CGSize(viewList[viewList.Count - 1].Right <= Width ? Width + 1 : viewList[viewList.Count - 1].Right,0);
        }
 
 
        /// <summary>
        /// 移除所有的视图
        /// </summary>
        public override  void RemoveAll()
        {
            base.RemoveAll();
            ReLocation ();
        }
 
        /// <summary>
        /// 移除控件
        /// </summary>
        /// <param name="view">View.</param>
        public override void Remove(View view)
        {
            base.Remove(view);
            ReLocation ();
        }
 
 
        /// <summary>
        ///  移除指定索引对象
        /// </summary>
        /// <param name="index">Index.</param>
        public override void RemoveAt(int index)
        {
            base.RemoveAt(index);
            ReLocation ();
        }
 
        /// <summary>
        /// 是否允许滑动
        /// </summary>
        /// <value><c>true</c> if scroll enabled; otherwise, <c>false</c>.</value>
        public bool ScrollEnabled
        {
            get
            {
                return (viewGroup as MyUIScrolView).ScrollEnabled;
            }
            set
            {
                (viewGroup as MyUIScrolView).ScrollEnabled = value;
            }
        }
 
        /// <summary>
        /// 是否正在滑动
        /// </summary>
        /// <value><c>true</c> if decelerating; otherwise, <c>false</c>.</value>
        public bool Decelerating
        {
            get
            {
                return (viewGroup as MyUIScrolView).Decelerating;
            }
        }
    }
 
 
}