Picker in Xamarin.iOS available

后端 未结 3 1089
清歌不尽
清歌不尽 2020-12-11 05:03

Is iOS Picker available in the Xamarin.iOS? I have searched throughly but there is neither example nor information has been founded; however, it is available in Xamarin.Form

3条回答
  •  时光取名叫无心
    2020-12-11 05:41

    public class GenderPicker : UIViewController
    {
        public TestVC() { }
    
    
        UITextField SelectGenderTextField = new UITextField();
        UIPickerView GenderPicker = new UIPickerView();
    
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            AddTextField();
            GenderTextField();
    
    
            Constraint();
        }
    }
    

    Textfield To Show The Selected Data

        private void AddTextField()
        {
            SelectGenderTextField.Placeholder = "Select Gender";
            SelectGenderTextField.Layer.BorderWidth = 1;
            SelectGenderTextField.Layer.BorderColor = UIColor.Black.CGColor;
            SelectGenderTextField.Layer.MasksToBounds = true;
            SelectGenderTextField.Layer.SublayerTransform = CATransform3D.MakeTranslation(5, 0, 0); //to Create a Space At The beginning of the text field
    
    
            SelectGenderTextField.InputView = GenderPicker; //To Start The UIPickerView from The bottom.
    
        }
    

    Gender Picker

        private void GenderTextField()
        {
            var genderList = new List {
           "Male","Female"
        };
    
            var picker = new GenderPickerModel(genderList);
    
            GenderPicker.Model = picker;
    
            picker.ValueChanged += (sender, e) => {
    
                SelectGenderTextField.Text = picker.SelectedGenderByUser; //Update The Selected Value In the TextField
    
                View.EndEditing(true);// To Dismiss the Picker View Once The User Select The Value
            };
    
         }
    

    Constraints

        // Used Cirrious.FluentLayouts.Touch For Constraints
        private void Constraint()
        {
            View.AddSubviews(SelectGenderTextField);
    
            View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
    
            View.AddConstraints(
    
    
                SelectGenderTextField.WithRelativeWidth(View, 0.80f),
                SelectGenderTextField.WithRelativeHeight(View, 0.05f),
                SelectGenderTextField.WithSameCenterX(View),
                SelectGenderTextField.WithSameCenterY(View)
    
    
                );
        }
    

    Picker Model Class

    class GenderPickerModel : UIPickerViewModel
    {
        public EventHandler ValueChanged;
        public string SelectedGenderByUser;
        private List genderList;
    
        public GenderPickerModel(List genderList)
        {
            this.genderList = genderList;
        }
    
        public override nint GetRowsInComponent(UIPickerView pickerView, nint component)
        {
            return genderList.Count;
        }
    
        public override nint GetComponentCount(UIPickerView pickerView)
        {
            return 1;
        }
    
        public override string GetTitle(UIPickerView pickerView, nint row, nint component)
        {
            return genderList[(int)row];
        }
    
        public override void Selected(UIPickerView pickerView, nint row, nint component)
        {
            var gender = genderList[(int)row];
            SelectedGenderByUser = gender;
            ValueChanged(null,null);
        }
    
    
    }
    

提交回复
热议问题