关于UITextField与UIDatePicker时间控制器的复用

来源:互联网 发布:高清网络摄像机价格 编辑:程序博客网 时间:2024/05/21 08:40

UITextField作为一个文本输入框,正常情况下的定义什么的如下

nameText = [[UITextField alloc]initWithFrame:CGRectMake(80, 80, 80, 30)]; nameText.borderStyle = UITextBorderStyleRoundedRect;//设置输入框的边框 //nameText.backgroundColor = [UIColor redColor]; //???的颜色 nameText.font = [UIFont fontWithName:@"Arial" size:20.0f];//输入框字体 大小 nameText.delegate = self; nameText.textColor = [UIColor blackColor]; //字体颜色 nameText.keyboardType = UIKeyboardTypeDefault;// 键盘的样式 这个是默认键盘 支持所有字符 [self.view addSubview: nameText]; {     nameText.userInteractionEnabled = NO;   设置为NO 键盘就不会出来  }


如果点击输入框需要显示弹出时间控制器或者pickerview等别的控件时候需要如下 
1,先定义时间控制器 
//定义一个时间控制器 datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0.0 , self.view.frame.size.height-216, 0.0, 0.0)]; datePicker.datePickerMode = UIDatePickerModeDate;//英文月份 日期 年 NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//设置为中文显示 datePicker.locale = locale; datePicker.tag=0; [ datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged ]; [add addSubview:datePicker ];//add是一个UIView视图 

2,定义UITextField文本输入框并赋予时间控制器 
startText = [[UITextField alloc]initWithFrame:CGRectMake(100, 140, 150, 30)]; startText.borderStyle = UITextBorderStyleRoundedRect;//设置输入框的边框 // genderText.backgroundColor = [UIColor redColor]; //???的颜色 startText.font = [UIFont fontWithName:@"Arial" size:20.0f];//输入框字体 大小 startText.delegate = self; startText.textColor = [UIColor blackColor]; //字体颜色 // startText.keyboardType = UIKeyboardTypeNumberPad;//键盘的样式 数字键盘 startText.inputView =datePicker;//键盘换成控制器 [self.view addSubview: startText]; 

3,实现时间控制器定义的那个事件,将时间显示在文本框里 

-(void )dateChanged:(id)sender{ // dateChanged 是获取当前的选择器时间的startDate = [datePicker date]; //selected 是选择器当前的时间Date//开始 NSLog(@"%@",startDate); NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd "]; NSString *strDate = [dateFormatter stringFromDate:startDate]; startText.text =strDate; NSTimeInterval time = [endDate timeIntervalSince1970]; date1 = (long long int)time; NSLog(@"miaoshu:%lld",date2); //加上面三行是把时间转化为秒数 }}


0 0
原创粉丝点击