2017-09-26 18 views
1

この画像のようなピッカーを実装する必要があります。これどうやってするの?私はXamarin.iOSを使用していますが、ネイティブコードの回答を使用して自分で翻訳することができます。Xamarin iOSのポップアップピッカー

Picker

答えて

1

を使用します。

UIToolbar toolBar = new UIToolbar(new CGRect(0, 0, 320, 44)); 
UIBarButtonItem flexibleSpaceLeft = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace,null,null); 
UIBarButtonItem doneButton = new UIBarButtonItem("OK",UIBarButtonItemStyle.Done,this, new ObjCRuntime.Selector("DoneAction")); 
UIBarButtonItem[] list = new UIBarButtonItem[] { flexibleSpaceLeft, doneButton }; 
toolBar.SetItems(list, false); 

UIPickerView pickerView = new UIPickerView(new CGRect(0, 44, 320, 216)); 
pickerView.DataSource = new MyUIPickerViewDataSource(); 
pickerView.Delegate = new MyUIPickerViewDelegate(); 
pickerView.ShowSelectionIndicator = true; 

textField.InputAccessoryView = toolBar; 
textField.InputView = pickerView; 

あなたのDataSourceを実装した後、ピッカービューのDelegate、それはl IKEこの:写真のように

enter image description here

似ています
2

あなたは、TextFieldのInputViewプロパティにPickerViewを割り当てて、このように、InputAccessoryViewにツールバーを割り当てることができますActionSheet

actionSheetButton.TouchUpInside += ((sender, e) => { 

      // Create a new Alert Controller 
      UIAlertController actionSheetAlert = UIAlertController.Create("Action Sheet", "Select an item from below", UIAlertControllerStyle.ActionSheet); 

      // Add Actions 
      actionSheetAlert.AddAction(UIAlertAction.Create("Item One",UIAlertActionStyle.Default, (action) => Console.WriteLine ("Item One pressed."))); 

      actionSheetAlert.AddAction(UIAlertAction.Create("Item Two",UIAlertActionStyle.Default, (action) => Console.WriteLine ("Item Two pressed."))); 

      actionSheetAlert.AddAction(UIAlertAction.Create("Item Three",UIAlertActionStyle.Default, (action) => Console.WriteLine ("Item Three pressed."))); 

      actionSheetAlert.AddAction(UIAlertAction.Create("Cancel",UIAlertActionStyle.Cancel, (action) => Console.WriteLine ("Cancel button pressed."))); 

      // Required for iPad - You must specify a source for the Action Sheet since it is 
      // displayed as a popover 
      UIPopoverPresentationController presentationPopover = actionSheetAlert.PopoverPresentationController; 
      if (presentationPopover!=null) { 
       presentationPopover.SourceView = this.View; 
       presentationPopover.PermittedArrowDirections = UIPopoverArrowDirection.Up; 
      } 

      // Display the alert 
      this.PresentViewController(actionSheetAlert,true,null); 
     }); 
+0

ではなく、同じ「スピナー」コントロール。私はそれがネイティブコントロールだと確信していますか? – Darius

関連する問題