Xamarin UIPickerView iOS

这是我的第一篇文章,并且源于不得不处理使用本机iOS的UI元素来跨平台Xamarin.iOS的烦恼。 通常会发现,当尝试实施iOS中的解决方案(Swift和Objective-C)时,在线提供的示例通常无法为您提供逐步的解决方案。 因此,在本文中,我将尽力而为,并帮助您使用UIPickerView。

根据我最喜欢的网站; 使用Chris的代码,UIPickerView是一个UI元素,可用于从多个选择中进行选择(类似于下拉菜单对网页所做的操作)。

以此类推。

我正在使用Xamarin Studio 6.0.1构建。 新解决方案> iOS:Single View App>单击下一步> AppName>单击下一步,并将所有其他内容保留为默认值。

打开您的Main.storyboard。

从对象工具箱中添加标签和PickerView。 在属性窗格下提供UI元素名称。

转到负责故事板中视图的UIViewController。

  1. 导入这些库
 使用系统; 
使用System.Collections.Generic;
使用UIKit;

2.实例化Picker的数据模型类。

  PickerDataModel pickerDataModel; 

3.在您的ViewDidLoad方法中,插入以下代码。

 公共重写void ViewDidLoad() 
{
base.ViewDidLoad();
//加载视图后,通常从笔尖执行任何其他设置。
//创建我们的简单选择器模型
pickerDataModel =新的PickerDataModel();
pickerDataModel.Items.Add(“蓝色”);
pickerDataModel.Items.Add(“红色”);
pickerDataModel.Items.Add(“紫色”);
pickerDataModel.Items.Add(“白色”);

//将其设置在我们的选择器类上
colorPicker.Model = pickerDataModel;

//连接值更改方法
pickerDataModel.ValueChanged + =(s,e)=>
{
colorValueLabel.Text = pickerDataModel.SelectedItem;
};

//在标签上设置我们的初始选择
colorValueLabel.Text = pickerDataModel.SelectedItem;
}

在PickerDataModel类中。 插入以下代码。

 受保护的类PickerDataModel:UIPickerViewModel 

{
公共事件EventHandler ValueChanged;

///
///要显示在选择器中的项目
///
公共List 项{get; 私人套装; }

///
///当前选中的项目
///
公共字符串SelectedItem
{
得到{return Items [selectedIndex]; }
}

int selectedIndex = 0;

公共PickerDataModel()
{
Items =新的List ();
}

///
///由选择器调用以确定给定微调器项目中有多少行
///
公共重写nint GetRowsInComponent(UIPickerView选择器,nint组件)
{
返回Items.Count;
}

///
///由选择器调用,以获取特定行中特定行的文本
///微调器项目
///
公共重写字符串GetTitle(UIPickerView选择器,nint行,nint组件)
{
返回项目[(int)行];
}

///
///由选择器调用以获取微调器项目的数量
///
公共重写nint GetComponentCount(UIPickerView选择器)
{
返回1;
}

///
///在微调器中选择一行时调用
///
公共重写void Selected(UIPickerView选择器,nint行,nint组件)
{
selectedIndex =(int)行;
如果(ValueChanged!= null)
{
ValueChanged(this,new EventArgs());
}
}
}

运行您的应用程序。 而且您应该很好。