第一次自己写博客,如有写的不好的地方还请指教。
iOS自带的时间选择器还是很好用的,界面简洁,效果很好。
- 首先创建两个Label:用来现实开始时间和结束时间
UILabel *beginLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 50, 50, 25)];
beginLabel.text = @"开始日期:";
beginLabel.font = [UIFont systemFontOfSize:11];
UILabel *endLabel = [[UILabel alloc] initWithFrame:CGRectMake(165, 50, 50, 25)];
endLabel.text = @"结束日期:";
endLabel.font = [UIFont systemFontOfSize:11];
- 创建DatePicker
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(20, 50, 300, 200)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
NSDate *maxDate = [[NSDate alloc] initWithTimeIntervalSinceNow:0];
datePicker.maximumDate = maxDate; //将今天设置为最大时间
- 创建ToolBar:可以设置一些功能按钮
UIToolbar *beginToolbar = [[UIToolbar alloc] init];
beginToolbar.barTintColor = [UIColor blackColor];
beginToolbar.frame = CGRectMake(0, 0, 320, 44);
UIBarButtonItem *spaceItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *beginItem=[[UIBarButtonItem alloc]initWithTitle:@"确定" style:UIBarButtonItemStylePlain target:self action:@selector(beginDateClick)];
beginItem.tintColor = [UIColor whiteColor];
beginToolbar.items = @[spaceItem, beginItem];
//确定按钮的Action
- (void)beginDateClick {
if (!currentMinDate) {
currentMinDate = [[NSDate alloc] init];
}
currentMinDate = [datePicker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:currentMinDate];
if (![endDateText.text isEqual:@""]) { //开始时间小于结束时间
NSDate *date = [dateFormatter dateFromString:endDateText.text];
NSTimeInterval interval = [currentMinDate timeIntervalSinceDate:date];
//如果没有保存的时分秒会置为0,比较的时候注意
if (interval <= kDay) {
beginDateText.text = dateString;
[beginDateText resignFirstResponder];
}else {
UIAlertView *beginAlert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"开始日期不能大于结束日期!" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
[beginAlert show];
}
}else {
beginDateText.text = dateString;
[beginDateText resignFirstResponder];
}
}
UIToolbar *endToolbar......//类似beginToolbar
- 创建两个TextField:用TextField的属性来使用DatePicker
UITextField *beginDateText = [[UITextField alloc] initWithFrame:CGRectMake(75, 50, 85, 25)];
beginDateText.borderStyle = UITextBorderStyleRoundedRect;
beginDateText.font = [UIFont systemFontOfSize:12];
beginDateText.inputView = datePicker;
beginDateText.inputAccessoryView = beginToolbar;
UITextField *endDateText = [[UITextField alloc] initWithFrame:CGRectMake(215, 50, 85, 25)]......//类似beginDateText
因为时间原因,写的比较仓促,还请谅解。希望能再iOS开发的道路上共同前进,谢谢。
2015.6.4 于 Beijing.