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);
//}
}
}
}