当用户单击textField时,我正在使用带有弹出窗口的DatePicker。但是,Picker首先显示Month,而不是首先显示日期,并且它不是英国人写日期的方式。 有没有办法将DatePicker中的日期格式设置为英国方式,如dd / mm / yyyy? 我正在使用Achtionsheet:
-(IBAction)acsheet:(id)sender
{
actionSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
//CGRect pickerFrame = CGRectMake(0, 45, 0, 0);
pickerView1 = [[UIDatePicker alloc] init];
pickerView1.datePickerMode = UIDatePickerModeDate;
[actionSheet addSubview:pickerView1];
UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]];
closeButton.momentary = YES;
closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
closeButton.tintColor = [UIColor blackColor];
[closeButton addTarget:self action:@selector(dismissActionSheet:)
forControlEvents:UIControlEventValueChanged];
[actionSheet addSubview:closeButton];
[actionSheet showInView:[[UIApplication sharedApplication] keyWindow]];
[actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
[pickerView1 addTarget:self
action:@selector(updateLabel:)
forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissDatePicker:)] ;
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 44)];
toolBar.tag = 11;
toolBar.barStyle = UIBarStyleBlackTranslucent;
[toolBar setItems:[NSArray arrayWithObjects:spacer, doneButton, nil]];
[self.view addSubview:toolBar];
}
答案 0 :(得分:17)
默认情况下,UIDatePicker
使用[NSLocale currentLocale]
指令。
iOS 5中已弃用locale
上的UIDatePicker
属性,但我相信您可以执行以下操作:
NSCalendar *cal = [NSCalendar currentCalendar];
cal.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
myDatePicker.calendar = cal;
此应该有效。如果没有,请file a bug,我会解决它。 :)
答案 1 :(得分:7)
UIDatePicker适应用户的设置。可以使用locale:
方法更改其格式,但现在已在iOS 5.0中弃用。
您可以在iPhone的设置中查看格式:
设置>一般>国际>区域格式
如果你想要一个特定的格式,可以考虑制作一个自己的选择器,但是对于日期选择器是非常不鼓励的。
答案 2 :(得分:2)
当用文字写月份时,英国人可能会把月份放在第一位(或者至少可以接受)。
但是要回答你的问题我不知道改变日期选择器的显示格式的方法,但你可以使用带有自定义委托和数据源的UIPickerView来让你自己。