您的位置:首页 > 产品设计 > UI/UE

UIDatePicker简单运用

2015-06-04 09:41 369 查看
第一次自己写博客,如有写的不好的地方还请指教。

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: