UIActionSheet с UIPickerView и кнопками «Готово», «Далее», «Предыдущий» - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь реализовать лист действий, который содержит вид сборщика и сегментированную панель управления с предыдущей кнопкой, следующей кнопкой и кнопкой «Готово», как на изображении, как показано ниже http://imgur.com/8wVMy. В настоящее время я могу заставить его выглядетьвот так http://imgur.com/AXn6H. Мне было интересно, может ли кто-нибудь помочь мне заставить вид сборщика сесть на дно и просто сделать его немного лучше.Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Если вы не ориентируетесь на очень старые версии iOS (т.е. версии более ранние, чем 3.2), лучший способ сделать это - использовать совершенно другой подход.

Начиная с 3.2, любой UIResponder (который включает в себя все UIViews) может возвращать UIView из своего свойства inputView, чтобы показать это представление вместо клавиатуры, когда представление становится первым респондентом. Это даже работает для представлений, которые обычно не становятся первым респондентом или вообще не отображают клавиатуру. Все просто:

  1. Создайте всплывающее окно так же, как и любое другое представление.
  2. Убедитесь, что ваш виджет возвращает YES от canBecomeFirstResponder.
  3. Убедитесь, что ваш виджет возвращает экземпляр вашего всплывающего представления из inputView.

Более подробная информация доступна в документации .

Кроме того, кстати, если вы на iPad, вам, вероятно, следует использовать UIPopoverController для отображения UIPickerView вместо любого из этих методов. Apple может фактически потребовать это , если вы собираетесь получить свое приложение в магазине приложений.

0 голосов
/ 01 сентября 2012

Следующая и предыдущая кнопки фактически отображают ваши изображения в segmentedController на панели инструментов.Чтобы получить его, вы должны определить segmentedController и UIToolbar.H. Затем добавьте DataSource и UIPickerView. Затем в viewDidLoad создайте объекты и определите их свойства.Например:

 if (keyboardToolbar == nil) {
        keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
        [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent];


        segControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Anterior", @"Siguiente", nil]];
        [segControl setSegmentedControlStyle:UISegmentedControlStyleBar];
        [segControl setTintColor:[UIColor blackColor]];
        segControl.frame = CGRectMake(5, 7, 150, 33);
        segControl.momentary = YES;
        [segControl addTarget:self action:@selector(segSelected:) forControlEvents:UIControlEventValueChanged];

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

        UIBarButtonItem *aceptar = [[UIBarButtonItem alloc] initWithTitle:@"Hecho" style:UIBarButtonItemStyleDone target:self action:@selector(cerrarTeclado:)];

        //aceptar.width = 70.0f;

        [keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, aceptar, nil]];
        [keyboardToolbar addSubview:segControl];
    }
...