Вмещение UIDatePicker в UIActionSheet

37
задан iDeveloper 4 April 2016 в 13:08
поделиться

5 ответов

Можно использовать что-то вроде этого (скорректируйте координаты):

    UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" 
                                                  delegate:self
                                         cancelButtonTitle:@"Cancel"
                                    destructiveButtonTitle:nil
                                         otherButtonTitles:nil];

    // Add the picker
    UIDatePicker *pickerView = [[UIDatePicker alloc] init];
    pickerView.datePickerMode = UIDatePickerModeDate;
    [menu addSubview:pickerView];
    [menu showInView:self.view];    
    [menu setBounds:CGRectMake(0,0,320, 500)];

    CGRect pickerRect = pickerView.bounds;
    pickerRect.origin.y = -100;
    pickerView.bounds = pickerRect;

    [pickerView release];
    [menu release];

, Но Вы лучше создаете полноэкранное представление с UIDatePicker и панелью навигации. Поскольку пример видит UICatalog-> образец Средств выбора от iPhone DevCenter.

44
ответ дан thbonk 27 November 2019 в 04:15
поделиться

Попробуйте добавить следующую строку, чтобы решить проблему с отключенными кнопками

[menu sendSubviewToBack:pickerView];
18
ответ дан 27 November 2019 в 04:15
поделиться

Это работает для меня

NSString *title = UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation) ? @"\n\n\n\n\n\n\n\n\n" : @"\n\n\n\n\n\n\n\n\n\n\n\n" ;
UIActionSheet *actionSheet = [[UIActionSheet alloc] 
                              initWithTitle:[NSString stringWithFormat:@"%@%@", title, NSLocalizedString(@"SelectADateKey", @"")]
                              delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"Ok", nil];
[actionSheet showInView:self.view];
UIDatePicker *datePicker = [[[UIDatePicker alloc] init] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
[actionSheet addSubview:datePicker];

немного сложно, но работает!

8
ответ дан 27 November 2019 в 04:15
поделиться

Кнопки вверху, средство выбора внизу:

 UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" 
                                                  delegate:self
                                         cancelButtonTitle:@"Cancel"
                                    destructiveButtonTitle:nil
                                         otherButtonTitles:@"OK",nil];    
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeTime;
[menu addSubview:pickerView];
[menu showInView:_mainView];        

CGRect menuRect = menu.frame;
menuRect.origin.y -= 214;
menuRect.size.height = 300;
menu.frame = menuRect;


CGRect pickerRect = pickerView.frame;
pickerRect.origin.y = 174;
pickerView.frame = pickerRect;

[pickerView release];
[menu release];  
7
ответ дан 27 November 2019 в 04:15
поделиться

Убедитесь, что вы показываете UIActionSheet в правильном представлении, находясь внутри UITabBarController, чтобы избежать проблем с интерактивностью внизу:

[actionSheet showInView: self.parentViewController.tabBarController.view];

4
ответ дан 27 November 2019 в 04:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: