我想要一个有三列但不能工作的UIPickerView。我找不到错误,有人能帮忙吗?以下是代码:
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();
}
}
发布于 2016-04-04 17:15:43
可以通过重写GetComponentWidth
的UIPickerViewDelegate
来调整列的宽度。
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
参数为每一列返回自定义宽度。
https://stackoverflow.com/questions/36408085
复制相似问题