using System; using System.Collections.Generic; using Foundation; using Shared.IOS.TBL; namespace Shared { /// <summary> /// UIPickerView /// </summary> public class UIPickerView : View { /// <summary> /// 当å‰è§†å›¾ /// </summary> /// <value>The UIPickerView.</value> HDLPickerView mHDLPickerView { get { return uiView as HDLPickerView; } set { uiView = value; } } /// <summary> /// æž„é€ å‡½æ•° /// </summary> public UIPickerView() { mHDLPickerView = new HDLPickerView { MChangedDelegate = new OnSelectChangeListener(this) }; } /// <summary> /// 刷新布局 /// </summary> private void RefreshFrame() { mHDLPickerView.InitWithFrameArc(new CoreGraphics.CGRect(base.X, base.Y, base.Width, base.Height)); } /// <summary> /// 控件宽度 /// </summary> public override int Width { get { return base.Width; } set { base.Width = value; RefreshFrame(); } } /// <summary> /// 控件的高度 /// </summary> public override int Height { get { return base.Height; } set { base.Height = value; RefreshFrame(); } } /// <summary> /// 控件的Xåæ ‡ /// </summary> public override int X { get { return base.X; } set { base.X = value; RefreshFrame(); } } /// <summary> /// 控件的Xåæ ‡ /// </summary> public override int Y { get { return base.Y; } set { base.Y = value; RefreshFrame(); } } /// <summary> /// 设置PickerView 默认选ä¸é¡¹ /// </summary> public void setCurrentItems(int option1, int option2, int option3) { mHDLPickerView.SetCurrentItems(option1, option2, option3); } /// <summary> /// 设置PickerView æ•°æ® /// </summary> public void setNPicker(List<string> mFirstList, List<string> mSecondList, List<string> 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())); } } } /// <summary> /// 设置PickerView æ•°æ® /// </summary> public void setPicker(List<string> mFirstList, List<List<string>> 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); } /// <summary> /// 设置PickerView 选䏿–‡å—的颜色 /// </summary> 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); } /// <summary> /// Action /// </summary> public Action<int, int, int> OnSelectChangeEvent; /// <summary> /// OnSelectChangeListener 继承å“应事件 /// </summary> 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); //} } } }