Добавление кнопки в UIDatePicker - PullRequest
2 голосов
/ 02 сентября 2010

Можно ли добавить кнопку «Готово» в UIDatePickerView, чтобы пользователи могли нажать на нее, чтобы закрыть представление.

Ответы [ 4 ]

8 голосов
/ 02 сентября 2010

Я отправляю код Пожалуйста, объявите необъявленные объекты в соответствии с их типом. Остальное вы сделаете. Надеюсь, это поможет ...

#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];
}

Внесите изменения согласно требованиюЭто 100% работающий код, который я почти использую в аналогичном приложении

СЧАСТЛИВОЕ КОДИРОВАНИЕ ...

8 голосов
/ 02 сентября 2010

Вы должны создать UIView для удержания выбора и нужной кнопки, а затем анимировать это представление на видимом экране, когда вам нужна введенная дата, анимировать его при нажатии кнопки.Я использовал такую ​​схему, где кнопка на самом деле является меткой даты и нажимается для начала или окончания редактирования даты.

1 голос
/ 02 апреля 2014

Это демонстрационный проект для UIDatePicker с кнопками Cancel / Done: https://github.com/lenhhoxung86/CustomDatePicker

0 голосов
/ 17 мая 2015

Еще один настраиваемый проект UIToolbar и UIDatePicker.Может быть полезно: https://github.com/anatoliyv/SMDatePicker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...