using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Text; 
 | 
using CoreGraphics; 
 | 
using Foundation; 
 | 
using UIKit; 
 | 
  
 | 
namespace Shared 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 时间视图 
 | 
    /// </summary> 
 | 
    public class TimeView : View 
 | 
    { 
 | 
        /// <summary> 
 | 
        /// 当前视图 
 | 
        /// </summary> 
 | 
        /// <value>The android text.</value> 
 | 
        MyUITimePicker currentUITimePicker 
 | 
        { 
 | 
            get 
 | 
            { 
 | 
                return uiView as MyUITimePicker; 
 | 
            } 
 | 
            set 
 | 
            { 
 | 
                uiView = value; 
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
        /// <summary> 
 | 
        /// 时 
 | 
        /// </summary> 
 | 
        public int Hour 
 | 
        { 
 | 
            get { return (int)currentUITimePicker.current.Hour; } 
 | 
        } 
 | 
        /// <summary> 
 | 
        /// 分 
 | 
        /// </summary> 
 | 
        public int Minute 
 | 
        { 
 | 
            get { return (int)currentUITimePicker.current.Minute; } 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 视图 
 | 
        /// </summary> 
 | 
        public TimeView() 
 | 
        { 
 | 
            currentUITimePicker = new MyUITimePicker(this) { }; 
 | 
             
 | 
        } 
 | 
  
 | 
         class MyUITimePicker : UIDatePicker 
 | 
        { 
 | 
            [Weak] TimeView timeView; 
 | 
            public MyUITimePicker(TimeView timeView) 
 | 
            { 
 | 
                this.timeView = timeView; 
 | 
                Mode = UIDatePickerMode.Time; 
 | 
            } 
 | 
  
 | 
            nfloat x; 
 | 
            /// <summary> 
 | 
            /// 点击开始 
 | 
            /// </summary> 
 | 
            /// <param name="touches">Touches.</param> 
 | 
            /// <param name="evt">Evt.</param> 
 | 
            public override void TouchesBegan(NSSet touches, UIEvent evt) 
 | 
            { 
 | 
                timeView?.TouchEvent(EventActions.Down, (touches.AnyObject as UITouch).LocationInView(this)); 
 | 
            } 
 | 
            /// <summary> 
 | 
            ///  移动 
 | 
            /// </summary> 
 | 
            /// <param name="touches">Touches.</param> 
 | 
            /// <param name="evt">Evt.</param> 
 | 
            public override void TouchesMoved(NSSet touches, UIEvent evt) 
 | 
            { 
 | 
                timeView?.TouchEvent(EventActions.Move, (touches.AnyObject as UITouch).LocationInView(this)); 
 | 
            } 
 | 
  
 | 
            /// <summary> 
 | 
            /// 点击弹起 
 | 
            /// </summary> 
 | 
            /// <param name="touches">Touches.</param> 
 | 
            /// <param name="evt">Evt.</param> 
 | 
            public override void TouchesEnded(NSSet touches, UIEvent evt) 
 | 
            { 
 | 
                timeView?.TouchEvent(EventActions.Up, (touches.AnyObject as UITouch).LocationInView(this)); 
 | 
            } 
 | 
  
 | 
            public override void TouchesCancelled(NSSet touches, UIEvent evt) 
 | 
            { 
 | 
                timeView?.TouchEvent(EventActions.Cancel, (touches.AnyObject as UITouch).LocationInView(this)); 
 | 
            } 
 | 
  
 | 
            public NSDateComponents current 
 | 
            { 
 | 
                get 
 | 
                { 
 | 
                    NSCalendar cal = NSCalendar.CurrentCalendar; 
 | 
                    return cal.Components(NSCalendarUnit.Hour | NSCalendarUnit.Minute | NSCalendarUnit.Second, Date);// [cal components: unitFlags fromDate: now 
 | 
                } 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
    } 
 | 
} 
 |