2016-04-04 15 views
0

3つの列を持つUIPickerViewが必要ですが、機能しません。 エラーが見つかりません。誰かが助けてくれますか?3列のuipickerview - xamarin c#

enter image description here

static string[] nomesPeso = new string[] 
{ 
    "Back Squat", 
    "Front Squat", 
    "OHS - Overhead Squat" 
}; 

static string[] nomesUnidades = new string[] 
{ 
    "Reps", 
    "Kgs", 
    "Lbs", 
    "Metros" 
}; 

static string[] nomesRepeticoes = new string[] 
{ 
    "1 RM", 
    "2 RM", 
    "3 RM" 
}; 

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

public override nint GetRowsInComponent(UIPickerView pickerView, nint component) 
{ 
    switch (component) 
    { 
     case 0: 
      return nomesPeso.Length; 
     case 1: 
      return nomesRepeticoes.Length; 
     case 2: 
      return nomesUnidades.Length; 
     default: 
      throw new NotImplementedException(); 
    } 
} 

public override string GetTitle(UIPickerView picker, nint row, nint component) 
{ 
    switch (component) 
    { 
     case 0: 
      return nomesPeso[row]; 
     case 1: 
      return nomesRepeticoes[row]; 
     case 2: 
      return nomesUnidades[row]; 
     default: 
      throw new NotImplementedException(); 
    } 
} 

答えて

0

あなたはUIPickerViewDelegateGetComponentWidthオーバーライドして列幅を調整することができます:

class MyPickerViewDelegate : UIPickerViewDelegate 
{ 
    public override nfloat GetComponentWidth(UIPickerView pickerView, nint component) 
    { 
     // equal size for every column 
     return pickerView.Frame.Width/3; 
    } 
} 

をして、あなたのUIPickerView

myPickerView.Delegate = new MyPickerViewDelegate(); 
の上に置き以下 コードです

このコードは、列を均等に分配します。もちろん、componentパラメータを使用すると、すべての列に対してカスタム幅を返すことができます。