xcode 向 UIDatePicker 添加按钮

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3624013/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 19:41:43  来源:igfitidea点击:

Adding a button to UIDatePicker

iphonexcodeuikit

提问by humblePilgrim

Is it possible to add a 'Done' button to a UIDatePickerView,so that users can tap it to dismiss the view.

是否可以向 UIDatePickerView 添加“完成”按钮,以便用户可以点击它来关闭视图。

回答by Adam Eberbach

You should create a UIView to hold the picker and the button you need, then animate that view into the visible screen when you need a date entered, animate it away when the button is tapped. I have used a scheme like this where the button is actually the date label and is tapped to begin or end date editing.

您应该创建一个 UIView 来保存选择器和您需要的按钮,然后在需要输入日期时将该视图动画化到可见屏幕中,当点击按钮时将其动画化。我使用了这样的方案,其中按钮实际上是日期标签,点击开始或结束日期编辑。

回答by Suresh Varma

I am Posting the code Please declare the objects that are undeclared as per their type Rest you will get it done.. Hope this helps...

我正在发布代码请根据它们的类型声明未声明的对象 Rest 你会完成它.. 希望这有助于...

#pragma mark DatePickerView
UIImagePickerController* imagePickerController;
UIDatePicker *theDatePicker;
UIToolbar* pickerToolbar;
UIActionSheet* pickerViewDate;
-(void)DatePickerView
{
    pickerViewDate = [[UIActionSheet alloc] initWithTitle:@"How many?"
                                                 delegate:self
                                        cancelButtonTitle:nil
                                   destructiveButtonTitle:nil
                                        otherButtonTitles:nil];

    theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
    theDatePicker.datePickerMode = UIDatePickerModeDate;

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
    [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]];
    [dateFormatter setDateFormat:@"dd MMM yyyy"];
    //[dateFormatter setDateFormat:@"MM/dd/YYYY"];

    //[theDatePicker release];
    [theDatePicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged];


    pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    pickerToolbar.barStyle=UIBarStyleBlackOpaque;
    [pickerToolbar sizeToFit];   
    NSMutableArray *barItems = [[NSMutableArray alloc] init];   
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];
    [barItems addObject:flexSpace];

    [pickerToolbar setItems:barItems animated:YES];       
    [pickerViewDate addSubview:pickerToolbar];
    [pickerViewDate addSubview:theDatePicker];
    [pickerViewDate  showInView:self.view];
    [pickerViewDate setBounds:CGRectMake(0,0,320, 464)];
}

-(IBAction)dateChanged{

    NSDateFormatter *FormatDate = [[NSDateFormatter alloc] init];
    [FormatDate setLocale: [[[NSLocale alloc]
                              initWithLocaleIdentifier:@"en_US"] autorelease]];
    [FormatDate setDateFormat:@"MM/dd/YYYY"];   
    SelectedTextField.text = [FormatDate stringFromDate:[theDatePicker date]];
}


-(BOOL)closeDatePicker:(id)sender{   
    [pickerViewDate dismissWithClickedButtonIndex:0 animated:YES];
    [pickerToolbar release];
    [pickerViewDate release];
    [SelectedTextField resignFirstResponder];   


    return YES;
}

-(IBAction)DatePickerDoneClick{   
    [self closeDatePicker:self];
    tableview.frame=CGRectMake(0, 44, 320, 416);

}

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

// returns the number of rows
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return 30;
    //    return [pickerViewArray count];
}

Do the changes as per requirement. This is 100% running code almost used by me in similar application

根据要求进行更改。这是我在类似应用程序中几乎使用过的 100% 运行代码

hAPPY cODING...

快乐编码...

回答by lenhhoxung

This is a demo project for UIDatePicker with Cancel/Done buttons: https://github.com/lenhhoxung86/CustomDatePicker

这是一个带有取消/完成按钮的 UIDatePicker 演示项目:https: //github.com/lenhhoxung86/CustomDatePicker

回答by anatoliy_v

One more customisable UIToolbar and UIDatePicker project. Might be helpful: https://github.com/anatoliyv/SMDatePicker

另一个可自定义的 UIToolbar 和 UIDatePicker 项目。可能会有所帮助:https: //github.com/anatoliyv/SMDatePicker