以编程的方式设置UIDatepicker

4
我有一个日期选择器和两个按钮。当我点击其中一个按钮时,我想通过编程方式设置日期选择器的值。例如,当我按下第一个按钮时,日期选择器的值变为今天的日期和00:00:00时间;当我按下第二个按钮时,日期选择器的值变为今天的日期和23:59:59时间。
如何实现?
3个回答

12

简单任务,假设您已经添加了两个函数在按下按钮时被调用,您需要像这样的东西:

-(IBAction)beginPressed:(id)sender
{
  NSDate * now = [[NSDate alloc] init];
  NSCalendar *cal = [NSCalendar currentCalendar];
  NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
  [comps setHour:0];
  [comps setMinute:0];
  [comps setSecond:0];
  NSDate * date = [cal dateFromComponents:comps];
  [self.datePicker setDate:date animated:TRUE];

}
-(IBAction)endPressed:(id)sender
{
  NSDate * now = [[NSDate alloc] init];
  NSCalendar *cal = [NSCalendar currentCalendar];
  NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
  [comps setHour:23];
  [comps setMinute:59];
  [comps setSecond:59];
  NSDate * date = [cal dateFromComponents:comps];
  [self.datePicker setDate:date animated:TRUE];
}

我认为设置组件的部分对你来说不太清楚,查看上述类的API,你会找到更多信息。

编辑:我将日历更改为当前默认日历,并用现在初始化了日历。


谢谢@iOS,但它没有给出想要的结果。它给出了 0001 年 1 月 1 日。我需要的是今天的日期,例如 2012 年 10 月 28 日 00:00:00,另一个是 2012 年 10 月 28 日 23:59:59。 - fadd

2

对于那些想知道如何在Swift中完成这个操作的人:

let now = NSDate()
let cal = NSCalendar.currentCalendar()
let comp = cal.components([.Year, .Month, .Day], fromDate: now)
comp.hour = 0 // or whatever you need
comp.minute = 0
let date = cal.dateFromComponents(comp)!
picker.setDate(date, animated: true)

2
NSDateFormatter *dateFormat;
  dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"h:mm a"];
  NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"]; 
  date-picker.minimumDate=exampleDateFromString;
 [date-picker setDate:exampleDateFromString];

这对于设置为setDatePickerMode:UIDatePickerModeTime的datePicker非常有效。 - Peter B. Kramer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接