2015-11-24 20 views
6

iOS PickerはXamarin.iOSで利用できますか?私は完全に検索しましたが、例も情報も確立されていません。ただし、Xamarin.Formで使用できます。Xamarin.iOSのピッカーは利用可能です

+1

私が追加簡単な例... – SushiHangover

+0

ありがとうロバート。すばらしい! – hotspring

+1

np、私は例で学び、Xammie 101を学んだときにこれらの何百ものものを作りました;-) ...それでもやっていると、私は毎日何か新しいものを見つけたようです。 – SushiHangover

答えて

11

と呼ばれている:(iOS SDK

enter image description here

あなたのXIBやストーリーボードにUIPickerViewを追加slotMachineViewと呼ばれる:

using System; 
using UIKit; 

namespace Slots 
{ 
    public partial class ViewController : UIViewController 
    { 
     public ViewController (IntPtr handle) : base (handle) 
     { 
     } 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 
       slotMachineView.Model = new StackOverflowModel (selectedLbl); 
     } 

     public override void DidReceiveMemoryWarning() 
     { 
      base.DidReceiveMemoryWarning(); 
     } 
    } 

    public class StackOverflowModel : UIPickerViewModel 
    { 
     static string[] names = new string [] { 
      "pscorlib.dll", 
      "pscorlib_aot.dll", 
      "Mono.PlayScript.dll", 
      "PlayScript.Dynamic.dll", 
      "PlayScript.Dynamic_aot.dll", 
      "PlayScript.Optimization.dll", 
      "playshell.exe", 
      "psc.exe" 
     }; 

     UILabel lbl; 

     public StackOverflowModel (UILabel lbl) 
     { 
      this.lbl = lbl; 
     } 

     public override nint GetComponentCount (UIPickerView v) 
     { 
      return 3; 
     } 

     public override nint GetRowsInComponent (UIPickerView pickerView, nint component) 
     { 
      return names.Length; 
     } 

     public override string GetTitle (UIPickerView picker, nint row, nint component) 
     { 
      switch (component) { 
      case 0: 
       return names [row]; 
      case 1: 
       return row.ToString(); 
      case 2: 
       return new string ((char)('A' + row), 1); 
      default: 
       throw new NotImplementedException(); 
      } 
     } 

     public override void Selected (UIPickerView picker, nint row, nint component) 
     { 
      lbl.Text = String.Format ("{0} : {1} : {2}", 
       names [picker.SelectedRowInComponent (0)], 
       picker.SelectedRowInComponent (1), 
       picker.SelectedRowInComponent (2)); 
     } 

     public override nfloat GetComponentWidth (UIPickerView picker, nint component) 
     { 
      if (component == 0) 
       return 220f; 
      else 
       return 30f; 
     } 
    } 
} 
+0

@SushiHangover:サンプルコードをありがとう。私は1つの質問があります。このシナリオがあるとします。まず、ユーザーがボタンをクリックしたときにピッカーを動的にポップアップし、ユーザーがピッカーから値を選択し、ユーザーがピッカーから値をピックアップした後にそのピッカーウィジェットを閉じることができます。そのシナリオのサンプルコードはありますか? – Thanh

+0

@SushiHangover:上記の私のコメントで触れた私の技術的な問題に関する新しい質問を作成しました。自由時間があるなら、この質問を見てください:http://stackoverflow.com/questions/39887140/how-to-dynamically-pop-up-and-hide-uipickerview-in-ios-xamarin- c-game – Thanh

+0

このコード行で "selectedLbl"とは何ですか?slotMachineView.Model = new StackOverflowModel(selectedLbl); ViewControllerクラスの –

関連する問題