【发布时间】:2014-05-14 10:41:03
【问题描述】:
我需要能够选择日期和月份,并将选项留给用户选择或不选择年份。例如,我在想一个包含所有年份的列表,最后添加一个选项“无选择”。
有什么想法吗?
我认为使用选择器视图是一种解决方案,但不确定。
谢谢
【问题讨论】:
标签: ios uipickerview uidatepicker
我需要能够选择日期和月份,并将选项留给用户选择或不选择年份。例如,我在想一个包含所有年份的列表,最后添加一个选项“无选择”。
有什么想法吗?
我认为使用选择器视图是一种解决方案,但不确定。
谢谢
【问题讨论】:
标签: ios uipickerview uidatepicker
使用 xamarin.ios,我所做的是在指轮顶部创建一个带有完成和取消按钮的工具栏。当您单击完成时,值已设置,然后单击取消,您需要将 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;
}
}
希望这会有所帮助!
【讨论】:
你可以试试CKPickerView,它可以很容易地自定义UIDatePicker。
【讨论】: