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