2014-09-19 52 views
1
UIDatePicker *datePicker = [[UIDatePicker alloc]init]; 
[datePicker setDate:[NSDate date]]; 
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; 
[txt_time setInputView:datePicker]; 

UIBarButtonItem *barButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(addORDeleteRows)]; 

完成按钮如何添加上的UIDatePicker的顶部完成按钮,当我按下文本框,然后将的UIDatePicker显示输入的日期完成按钮也show.After点击完成按钮的UIDatePicker应该隐藏后如何添加上的UIDatePicker

回答

0

enter image description here分配一个视图添加日期选择器底部的视图和日期选择器顶部的工具栏视图。 将barbuttons添加到工具栏。

0

//首先声明全部财产,并设置在.H委托和数据源这样

@interface RegistrationView : UIViewController <UIPickerViewDataSource,UIPickerViewDelegate,UIActionSheetDelegate> 
{ 
    UIPickerView *picker; 
    UIToolbar *toolbarPicker; 
    UIActionSheet *actionPicker; 
} 
@property (strong,nonatomic) UIPickerView *picker; 
@property (strong,nonatomic) UIToolbar *toolbarPicker; 
@property (strong,nonatomic) UIActionSheet *actionPicker; 

//和合成.m文件

@synthesize picker,actionPicker,toolbarPicker; 

//在视图做负载方法调用拾取器的设置方法

[self pickerSetting]; 

//设置拾取器,动作表和工具栏通过此方法

-(void) pickerSetting 
{ 

    toolbarPicker = [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,self.view.bounds.size.width,44)]; 
    if (!g_IS_IOS_6) 
    { 
     toolbarPicker.barTintColor = [UIColor colorWithRed:72.0/255.0 green:197.0/255.0 blue:87.0/255.0 alpha:1.0]; 
    } 
    toolbarPicker.frame=CGRectMake(0,0,320,44); 
    actionPicker = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; 
    actionPicker.frame = CGRectMake(0, 234, 320, 256); 
    [actionPicker setActionSheetStyle:UIActionSheetStyleDefault]; 
    actionPicker.delegate = self; 

    UIImage *imgbtnConvert = [UIImage imageNamed:@"info_button.png"];//Done btn.png 
    UIButton *btnConvert = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btnConvert.bounds = CGRectMake(200, 0, 93,31); 
    [btnConvert setTitle:@"Done" forState:UIControlStateNormal]; 
    [btnConvert setTintColor:[UIColor whiteColor]]; 
    [btnConvert setBackgroundImage:imgbtnConvert forState:UIControlStateNormal]; 
    [btnConvert addTarget:self action:@selector(pickerDoneClick) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *barButtonItemConvert = [[UIBarButtonItem alloc] initWithCustomView:btnConvert]; 

    UIBarButtonItem *flexConvert = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

    UIImage *imageConvert = [UIImage imageNamed:@"info_button.png"];//cancel png 
    UIButton *buttonConvert = [UIButton buttonWithType:UIButtonTypeCustom]; 
    buttonConvert.bounds = CGRectMake(0, 0, 93,31); 
    [buttonConvert setTitle:@"Cancel" forState:UIControlStateNormal]; //set title 
    [buttonConvert setTintColor:[UIColor whiteColor]]; //font color 
    [buttonConvert setBackgroundImage:imageConvert forState:UIControlStateNormal]; //set background image 
    [buttonConvert addTarget:self action:@selector(pickerCancelClick) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *barCancelButtonItemConvert = [[UIBarButtonItem alloc] initWithCustomView:buttonConvert]; 

    NSArray *itemsConvert = [[NSArray alloc] initWithObjects:barCancelButtonItemConvert, flexConvert, barButtonItemConvert, nil]; 
    [toolbarPicker setItems:itemsConvert]; 
    [actionPicker addSubview:toolbarPicker]; 

    picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 44, 320, 216)]; 
    picker.delegate = self; 
    picker.dataSource = self; 
    picker.showsSelectionIndicator = YES; 
    picker.backgroundColor= [UIColor whiteColor]; 
    [actionPicker addSubview:picker]; 
} 

//然后为拾取器完成按钮添加两个mehtod并取消按钮单击。

-(void) pickerDoneClick 
{ 
    // picker done button click put here your code .. 
    [actionPickerSearchCar dismissWithClickedButtonIndex:0 animated:YES]; 

} 

-(void) pickerCancelClick { 
    // Cancel button click 
    [actionPickerSearchCar dismissWithClickedButtonIndex:0 animated:YES]; 

} 

//并把代表和数据源的方法

#pragma mark - 
#pragma mark UIPickerView Delegate Datasource Method 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
    return 1; 
} 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 

    // return yourarr.count; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 

    // return yourarr[row]; 
} 


- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    // selectedfiles =yourarr[row]; 
} 

//调用用于分配选择器此方法。

[self pickerSetting] 

//使用这个节目选择器(把这个按钮操作方法)

-(IBAction)showPicker:(id)sender 
{ 
    [actionPickerSearchCar showInView:self.view]; 
    [actionPickerSearchCar setBounds:CGRectMake(0, 0, 320, 465)]; 
} 

我希望,这是对你有帮助。谢谢。

+0

如何调用这些方法 – 2014-09-19 13:18:01

+0

@ user2103135请显示我编辑的答案。 – ilesh 2014-09-19 13:27:50

+0

当我点击uitextfield然后uidatepicker将显示。但我想在uidatepicker上显示完成按钮,因为在输入日期后uidatepicker最小化。 – 2014-09-19 13:39:30

0

我想你可能真的想使用UITextFieldinputAccessoryView属性。只需在其中输入UIToolbar即可,并使用目标操作调用[txt_time resignFirstResponder]

相关问题