using System; using System.Collections.Generic; using Foundation; using Shared.IOS.TBL; namespace Shared { /// /// UIPickerView /// public class UIPickerView : View { /// /// 当前视图 /// /// The UIPickerView. HDLPickerView mHDLPickerView { get { return uiView as HDLPickerView; } set { uiView = value; } } /// /// 构造函数 /// public UIPickerView() { mHDLPickerView = new HDLPickerView { MChangedDelegate = new OnSelectChangeListener(this) }; } /// /// 刷新布局 /// private void RefreshFrame() { mHDLPickerView.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height)); } /// /// 控件宽度 /// public override int Width { get { return base.Width; } set { base.Width = value; RefreshFrame(); } } /// /// 控件的高度 /// public override int Height { get { return base.Height; } set { base.Height = value; RefreshFrame(); } } /// /// 控件的X坐标 /// public override int X { get { return base.X; } set { base.X = value; RefreshFrame(); } } /// /// 控件的X坐标 /// public override int Y { get { return base.Y; } set { base.Y = value; RefreshFrame(); } } /// /// 设置PickerView 默认选中项 /// public void setCurrentItems(int option1, int option2, int option3) { mHDLPickerView.SetCurrentItems(option1, option2, option3); } /// /// 设置PickerView 数据 /// public void setNPicker(List mFirstList, List mSecondList, List mThirdList) { if (mFirstList == null) { return; } if (mSecondList == null) { mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), null, null); } else { if (mThirdList == null) { mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), null); } else { mHDLPickerView.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), NSArray.FromObjects(mThirdList.ToArray())); } } } /// /// 设置PickerView 数据 /// public void setPicker(List mFirstList, List> mSecondList) { if (mFirstList == null) { return; } if (mFirstList.Count != mSecondList.Count) { return; } var dictDataList = new NSMutableArray(); for (int i = 0; i < mFirstList.Count; i++) { dictDataList.Add(NSDictionary.FromObjectAndKey(NSArray.FromObjects(mSecondList[i].ToArray()), new NSString(mFirstList[i]))); } mHDLPickerView.SetPicker(dictDataList); } /// /// 设置PickerView 选中文字的颜色 /// public void setTextColorCenter(uint mColor, int indexID) { byte r, g, b, a; r = (byte)(mColor / 256 / 256 % 256); g = (byte)(mColor / 256 % 256); b = (byte)(mColor % 256); a = (byte)(mColor / 256 / 256 / 256 % 256); mHDLPickerView.SetTextColorCenter(UIKit.UIColor.FromRGBA(r, g, b, a), indexID); } /// /// Action /// public Action OnSelectChangeEvent; /// /// OnSelectChangeListener 继承响应事件 /// OnSelectChangeListener mOnSelectChangeListener; public class OnSelectChangeListener : HDLPickerviewChangedDelegate { [Weak] UIPickerView _UIPickerView; public OnSelectChangeListener(UIPickerView view) { _UIPickerView = view; } public override void SelectIndex2(nint selectIndex1, nint selectIndex2, nint selectIndex3) { _UIPickerView.OnSelectChangeEvent?.Invoke((int)selectIndex1, (int)selectIndex2, (int)selectIndex3); } //public override void OnProgressChanged(int mProgress) //{ // _WaveSeekBar.OnProgressChangedEvent?.Invoke(this, mProgress); //} } } }