using System; using UIKit; using Shared.IO; using Foundation; namespace Shared { /// /// 位置布局 /// public class HorizontalScrolViewLayout:ViewGroup { /// /// 构造函数 /// public HorizontalScrolViewLayout() { viewGroup = new MyHorizontalScrolViewLayout(this) { }; realViewGroup = viewGroup; HorizontalScrollBarEnabled = false; } /// /// 垂直方向滚动视图 /// class MyHorizontalScrolViewLayout : UIScrollView { [Weak] internal HorizontalScrolViewLayout horizontalScrolViewLayout; public MyHorizontalScrolViewLayout(HorizontalScrolViewLayout horizontalScrolViewLayout) { this.horizontalScrolViewLayout = horizontalScrolViewLayout; } /// /// 点击开始 /// /// Touches. /// Evt. public override void TouchesBegan(NSSet touches, UIEvent evt) { horizontalScrolViewLayout?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this)); } /// /// 移动 /// /// Touches. /// Evt. public override void TouchesMoved(NSSet touches, UIEvent evt) { horizontalScrolViewLayout?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this)); } /// /// 点击弹起 /// /// Touches. /// Evt. public override void TouchesEnded(NSSet touches, UIEvent evt) { horizontalScrolViewLayout?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this)); } public override void TouchesCancelled(NSSet touches, UIEvent evt) { horizontalScrolViewLayout?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this)); } /// /// 框架默认加了两个UIImageView ,这样可以去掉默认添加 /// /// View. public override void AddSubview(UIView view) { if (view.GetType() == typeof(UIImageView) && view.Tag != int.MinValue) { return; } base.AddSubview(view); } } /// /// 增加子视图 /// /// The chidren. /// View. public override void AddChidren(View view) { base.AddChidren(view); ReLocation(); } /// /// 重新排位置及设备内容大小 /// 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 MyHorizontalScrolViewLayout).ContentSize = new CoreGraphics.CGSize(viewList[viewList.Count - 1].Right <= Width ? Width + 1 : viewList[viewList.Count - 1].Right,0); } /// /// 移除所有的视图 /// public override void RemoveAll() { base.RemoveAll(); ReLocation (); } /// /// 移除控件 /// /// View. internal override void Remove(View view) { base.Remove(view); ReLocation (); } /// /// 移除指定索引对象 /// /// Index. public override void RemoveAt(int index) { base.RemoveAt(index); ReLocation (); } /// /// 是否允许滑动 /// /// true if scroll enabled; otherwise, false. public bool ScrollEnabled { get { return (viewGroup as MyHorizontalScrolViewLayout).ScrollEnabled; } set { (viewGroup as MyHorizontalScrolViewLayout).ScrollEnabled = value; } } /// /// 是否正在滑动 /// /// true if decelerating; otherwise, false. public bool Decelerating { get { return (viewGroup as MyHorizontalScrolViewLayout).Decelerating; } } /// 
 /// 是否显示水平滚动条
 /// public bool HorizontalScrollBarEnabled { get
 {
 return (viewGroup as MyHorizontalScrolViewLayout).ShowsHorizontalScrollIndicator;
 } set { (viewGroup as MyHorizontalScrolViewLayout).ShowsHorizontalScrollIndicator = value; } } } }