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

我的答案有用吗?