using System;
|
using System.Collections.Generic;
|
using Shared.IOS.TBL;
|
using UIKit;
|
|
namespace Shared
|
{
|
|
/// <summary>
|
/// UICoverFlowView 已废弃,暂用HorizontalPages代替实现
|
/// </summary>
|
public class UICoverFlowView : View
|
{
|
/// <summary>
|
/// 当前视图
|
/// </summary>
|
/// <value>The UICoverFlowView.</value>
|
HDLCoverFlow mHDLCoverFlow
|
{
|
get
|
{
|
return uiView as HDLCoverFlow;
|
}
|
set
|
{
|
uiView = value;
|
}
|
}
|
|
|
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
public UICoverFlowView()
|
{
|
mHDLCoverFlow = new HDLCoverFlow
|
{
|
|
//MChangedDelegate = new OnSelectChangeListener(this)
|
};
|
|
Parents = new ViewGroup();
|
}
|
|
|
/// <summary>
|
/// 刷新布局
|
/// </summary>
|
private void RefreshFrame()
|
{
|
mHDLCoverFlow.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();
|
|
}
|
}
|
|
|
|
//public void setCurrentItems(int option1, int option2, int option3)
|
//{
|
|
// mHDLCoverFlow.SetCurrentItems(option1, option2, option3);
|
|
//}
|
|
//public void setNPicker(List<string> mFirstList, List<string> mSecondList, List<string> mThirdList)
|
//{
|
|
// mHDLCoverFlow.SetNPicker(NSArray.FromObjects(mFirstList.ToArray()), NSArray.FromObjects(mSecondList.ToArray()), NSArray.FromObjects(mThirdList.ToArray()));
|
|
//}
|
|
|
|
UIView[] mAndroidViewsList;
|
List<View> viewList = new List<View>();
|
|
private void UpdateViewsList()
|
{
|
|
mAndroidViewsList = new UIView[viewList.Count];
|
for (int i=0;i<viewList.Count;i++)
|
{
|
|
mAndroidViewsList[i]= viewList[i].RealView;
|
}
|
|
mHDLCoverFlow.AddCoverFlowViewDatas(mAndroidViewsList);
|
}
|
|
int pageIndex;
|
/// <summary>
|
/// 设置或者获取当前的界面索引
|
/// </summary>
|
/// <value>The index of the page.</value>
|
public int PageIndex
|
{
|
get
|
{
|
return pageIndex;
|
}
|
set
|
{
|
if (value < 0 || viewList.Count < value)
|
{
|
return;
|
}
|
|
pageIndex = value;
|
mHDLCoverFlow.SetCoverFlowSelectIndex(pageIndex);
|
|
|
}
|
}
|
|
|
|
public void Remove(View view)
|
{
|
if (view == null)
|
{
|
return;
|
}
|
|
viewList.Remove(view);
|
//realViewGroup.RemoveView(view.AndroidView);
|
//view.Parent = null;
|
|
//base.Remove(view);
|
//UpdateViewsList();
|
}
|
|
/// <summary>
|
/// 父容器
|
/// </summary>
|
/// <value>The parent.</value>
|
ViewGroup Parents;
|
/// <summary>
|
/// 增加子控件
|
/// </summary>
|
/// <param name="view">View.</param>
|
public void AddChidren(View view)
|
{
|
view.Parent = Parents;
|
view.Refresh();
|
viewList.Add(view);
|
|
//base.AddChidren(view);
|
UpdateViewsList();
|
}
|
|
|
/// <summary>
|
/// 清空所有的控件
|
/// </summary>
|
public void RemoveAll()
|
{
|
viewList.Clear();
|
//base.RemoveAll();
|
UpdateViewsList();
|
}
|
|
/// <summary>
|
/// 移除指定索引对象
|
/// </summary>
|
/// <param name="index">Index.</param>
|
public void RemoveAt(int index)
|
{
|
if (GetChildren(index) != null)
|
{
|
viewList.Remove(GetChildren(index));
|
UpdateViewsList();
|
}
|
|
//base.RemoveAt(index);
|
//UpdateViewsList();
|
}
|
|
|
/// <summary>
|
/// 获取指定索引对象
|
/// </summary>
|
/// <returns>The children.</returns>
|
/// <param name="index">Index.</param>
|
public View GetChildren(int index)
|
{
|
if (viewList.Count - 1 < index || index < 0)
|
{
|
return null;
|
}
|
return viewList[index];
|
}
|
|
|
|
|
|
|
|
|
//public Action<int> OnSelectChangeEvent;
|
public Action<int> OnCoverFlowViewClickEvent;
|
|
/// <summary>
|
/// Action
|
/// </summary>
|
public Action<int> OnSelectChangeEvent;
|
|
/// <summary>
|
/// OnSelectChangeListener 继承响应事件
|
/// </summary>
|
OnSelectChangeListener mOnSelectChangeListener;
|
|
public class OnSelectChangeListener : SelectItemDelegate
|
{
|
|
[Weak] UICoverFlowView _UICoverFlowView;
|
|
public OnSelectChangeListener(UICoverFlowView view)
|
{
|
_UICoverFlowView = view;
|
}
|
|
public override void OnSelectItem(nint mSelectIndex)
|
{
|
_UICoverFlowView.OnSelectChangeEvent?.Invoke((int)mSelectIndex);
|
}
|
|
|
}
|
}
|
}
|