iOS是否有任何自定义日期选择器,其中年份选择是可选的?

时间:2014-05-14 10:41:03

标签: ios uipickerview uidatepicker

我需要能够选择日期和月份,并将选项留给用户选择年份。例如,我正在考虑一个包含所有年份的列表,最后添加一个选项"没有选择"。

任何想法如何做到这一点?

我认为使用选择器视图是一种解决方案,但不确定。

由于

2 个答案:

答案 0 :(得分:0)

使用xamarin.ios我所做的是使用Done和Cancel按钮在指轮上创建一个工具栏。单击“完成”后,将设置该值,并单击“取消”,然后将“Datepicker”值设置为1900-1-1之类的值,并将uitextfield值更改为“未设置”。

我正在使用xamarin表格。这就是我在自定义渲染器中的内容:

public override void Draw (CGRect rect)
{
    base.Draw (rect);
    DatePicker elem = (DatePicker)Element;
    UITextField textField = (UITextField)Control;

    var toolbar = new UIToolbar(new CGRect(0.0f, 0.0f, Control.Frame.Size.Width, 44.0f));

    toolbar.Items = new[]
    {
        new UIBarButtonItem(UIBarButtonSystemItem.Cancel,(object sender, EventArgs e) => {
            if (elem.SetValueNullAction!=null){
                elem.SetValueNullAction();
                textField.Text = DefaultNotSetText;
            }
        }),
        new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace),
        new UIBarButtonItem(UIBarButtonSystemItem.Done,(object sender, EventArgs e) => {
            elem.Unfocus();
        })
    };

    textField.InputAccessoryView = toolbar;
    textField.BorderStyle = UITextBorderStyle.None;
    textField.TextColor = Color.FromHex ("999999").ToUIColor ();
    CGRect frame = textField.Frame;
    frame.Width = 100;
    textField.Frame = frame;
    if (elem.Date == elem.MinimumDate) {
        textField.Text = ((DatePicker)this.Element).Label;
    }

}

希望这有帮助!

答案 1 :(得分:0)

您可以尝试CKPickerView,它可以在UIDatePicker上轻松自定义。

snapshot