首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有三列的uipickerview xamarin c#

有三列的uipickerview xamarin c#
EN

Stack Overflow用户
提问于 2016-04-04 16:32:05
回答 1查看 581关注 0票数 0

我想要一个有三列但不能工作的UIPickerView。我找不到错误,有人能帮忙吗?以下是代码:

代码语言:javascript
运行
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-04 17:15:43

可以通过重写GetComponentWidthUIPickerViewDelegate来调整列的宽度。

代码语言:javascript
运行
复制
class MyPickerViewDelegate : UIPickerViewDelegate
{
    public override nfloat GetComponentWidth(UIPickerView pickerView, nint component)
    {
        // equal size for every column
        return pickerView.Frame.Width/3;
    }
}

然后在您的UIPickerView上设置它

代码语言:javascript
运行
复制
myPickerView.Delegate = new MyPickerViewDelegate();

此代码分发相等的列。当然,您可以使用component参数为每一列返回自定义宽度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36408085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档