Xamarin.forms 在PickerRenderer的Xamarin ios(表格)中输入附件视图
Xamarin.forms 在PickerRenderer的Xamarin ios(表格)中输入附件视图,xamarin.forms,picker,Xamarin.forms,Picker,如何在XAMARIN IOS(表单)中的工具栏中间添加“状态”标题? < p>你可以检查下面的代码 using System; using xxx.iOS; using Foundation; using UIKit; using Xamarin.Forms; using Xamarin.Forms.Platform.iOS; [assembly: ExportRenderer(typeof(Picker), typeof(MyiOSPickerRenderer))] namespace xx
如何在XAMARIN IOS(表单)中的工具栏中间添加“状态”标题?
< p>你可以检查下面的代码using System;
using xxx.iOS;
using Foundation;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(Picker), typeof(MyiOSPickerRenderer))]
namespace xxx.iOS
{
public class MyiOSPickerRenderer : PickerRenderer, IUIPickerViewDelegate, IUIPickerViewDataSource
{
string SelectedValue;
public MyiOSPickerRenderer()
{
}
public nint GetComponentCount(UIPickerView pickerView)
{
return 1;
}
public nint GetRowsInComponent(UIPickerView pickerView, nint component)
{
return Element.Items.Count;
}
[Export("pickerView:viewForRow:forComponent:reusingView:")]
public UIView GetView(UIPickerView pickerView, nint row, nint component, UIView view)
{
UILabel label = new UILabel
{
//here you can set the style of item!!!
TextColor = UIColor.Blue,
Text = Element.Items[(int)row].ToString(),
TextAlignment = UITextAlignment.Center,
};
return label;
}
[Export("pickerView:didSelectRow:inComponent:")]
public void Selected(UIPickerView pickerView, nint row, nint component)
{
Control.Text = Element.Items[(int)row];
SelectedValue = Element.Items[(int)row];
}
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
SelectedValue = Element.Items[0];
UIPickerView pickerView = (UIPickerView)Control.InputView;
pickerView.WeakDelegate = this;
pickerView.DataSource = this;
UIToolbar toolbar = (UIToolbar)Control.InputAccessoryView;
UIBarButtonItem save = new UIBarButtonItem("Save", UIBarButtonItemStyle.Done, (object sender, EventArgs click) =>
{
Control.Text = SelectedValue;
toolbar.RemoveFromSuperview();
pickerView.RemoveFromSuperview();
Control.ResignFirstResponder();
});
UIBarButtonItem Title = new UIBarButtonItem("States", UIBarButtonItemStyle.Done, null);
UIBarButtonItem cancel = new UIBarButtonItem("Cancel", UIBarButtonItemStyle.Bordered, (object sender, EventArgs click) =>
{
toolbar.RemoveFromSuperview();
pickerView.RemoveFromSuperview();
Control.ResignFirstResponder();
});
UIBarButtonItem empty = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null);
toolbar.Items = new UIBarButtonItem[] { cancel, empty, Title, empty, save };
}
}
}
}
使用系统;
使用xxx.iOS;
使用基础;
使用UIKit;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.iOS;
[assembly:ExportRenderer(typeof(Picker)、typeof(MyiOSPickerRenderer))]
命名空间xxx.iOS
{
公共类MyIOS PickerRenderer:PickerRenderer、IUIPickerViewDelegate、IUIPickerViewDataSource
{
字符串SelectedValue;
公共MyiOSPickerRenderer()
{
}
公共nint GetComponentCount(UIPickerView pickerView)
{
返回1;
}
公共nint GetRowsInComponent(UIPickerView pickerView,nint组件)
{
返回元素.Items.Count;
}
[导出(“pickerView:viewForRow:forComponent:reusingView:”)]
公共UIView GetView(UIPickerView-pickerView、nint行、nint组件、UIView视图)
{
UILabel label=新UILabel
{
//在这里您可以设置项目的样式!!!
TextColor=UIColor.Blue,
Text=Element.Items[(int)行].ToString(),
TextAlignment=UITextAlignment.Center,
};
退货标签;
}
[导出(“pickerView:didSelectRow:Incomonent:”)]
已选择公共无效(UIPickerView pickerView、第九行、第九组件)
{
Control.Text=Element.Items[(int)行];
SelectedValue=Element.Items[(int)行];
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(控件!=null)
{
SelectedValue=Element.Items[0];
UIPickerView pickerView=(UIPickerView)Control.InputView;
pickerView.WeakDelegate=this;
pickerView.DataSource=this;
UIToolbar工具栏=(UIToolbar)Control.InputAccessoryView;
UIBarButtonItem保存=新建UIBarButtonItem(“保存”,UIBarButtonItemStyle.Done,(对象发送者,事件参数单击)=>
{
Control.Text=SelectedValue;
toolbar.RemoveFromSuperview();
pickerView.RemoveFromSuperview();
Control.ResignFirstResponder();
});
UIBarButtonItem Title=新UIBarButtonItem(“States”,UIBarButtonItemStyle.Done,null);
UIBarButtonItem cancel=新建UIBarButtonItem(“取消”,UIBarButtonItemStyle.Bordered,(对象发送者,事件参数单击)=>
{
toolbar.RemoveFromSuperview();
pickerView.RemoveFromSuperview();
Control.ResignFirstResponder();
});
UIBarButtonItem empty=新UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace,null);
toolbar.Items=newuibarbuttonItem[]{cancel,empty,Title,empty,save};
}
}
}
}
我的答案有用吗?