2013-07-17 5 views
0

У меня есть UIPickerView с двумя компонентами, где пользователь может выбрать шрифт и размер шрифта.отклонение UIPickerView после того, как пользователь выбрал все строки

Я хочу отклонить представление, как только пользователь выбрал оба варианта.

Могу ли я как-то сделать это с использованием метода didSelectRow:inComponent?

+0

что вы хотите точно ?? вам нужно получить выбранный элемент из обоих компонентов, когда пользователь выбирает один из них? а также скрыть pickerView тоже? – iPatel

+0

Exothug вы можете ссылаться на приведенный ниже код – Romance

+0

Вы можете проверить отредактированный ответ – Romance

ответ

2

Да, если вы записываете component, который предоставляется методу, тогда, когда у всех ваших компонентов есть выбор, который вы можете уволить.

Обратите внимание, что пользователям это может не понравиться, и добавление панели инструментов над сборщиком с помощью сделанной кнопки может работать лучше.


Я хотел бы предложить создать вид контейнера для хранения сборщика и панель инструментов (подвиды), а затем показать/скрыть вид контейнера с любой анимации вам нравится (а если где вы в настоящее время показывают вид сборщика). Сборщик и панель инструментов не должны быть связаны каким-либо образом, просто выложены красиво в контейнере.

+0

Как я могу добавить панель инструментов? Я все еще довольно новичок в obj-c. также, спасибо за преследующую мои вопросы со всеми этими удивительными ответами сегодня – Exothug

0

Я надеюсь, что это поможет вам

 UIActionSheet *action = [[UIActionSheet alloc] init]; 
    action.actionSheetStyle = UIActionSheetStyleBlackTranslucent; 
    UIPickerView *pickerFromage=[[UIPickerView alloc]initWithFrame:CGRectMake(0, 44, 0 , 0)]; 
    UIToolbar *pickerAgeToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    pickerAgeToolbar.barStyle = UIBarStyleBlackOpaque; 
    [pickerAgeToolbar sizeToFit]; 
    NSMutableArray *barItems = [[NSMutableArray alloc] init]; 
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 
    [barItems addObject:flexSpace]; 

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(PickerDoneClick)]; 
    [doneBtn setTintColor:[UIColor blackColor]]; 
    [barItems addObject:doneBtn]; 

    [pickerAgeToolbar setItems:barItems animated:YES]; 
    pickerFromage.delegate=self; 
    pickerFromage.dataSource=self; 
    pickerFromage.tag=value; 
    pickerFromage.showsSelectionIndicator=YES; 

    [action addSubview:pickerAgeToolbar]; 
    [action addSubview:pickerFromage]; 
    [action showInView:self.view]; 
    [action setBounds:CGRectMake(0,0, 320, 464)];` 


    -(void)PickerDoneClick{ 
     [action dismissWithClickedButtonIndex:0 animated:YES]; 
      action=nil; 

} 
+0

это просто падает по какой-то причине – Exothug

+0

stringcountryid неизвестны компилятору, а – Exothug

+0

бы у взяло pickerview в XIb – Romance

0

Вы можете сделать это следующим образом:

Возьмите UIView в XIB, а затем добавить UIPickerView и панель инструментов с UIButton на нем. Дайте делегату UIPickerView и назначьте действие UIButton. Возьмите выход из UIView и в файл реализации (т. Е. Файл .m). Скройте UIView и назначьте рамку в нижней части экрана. Допустим, вы назвали это представление как myPickerView.

myPickerView.frame = CGRectMake(CGRectGetMinX(self.view.bounds), 
CGRectGetMaxY(self.view.bounds), 
CGRectGetWidth(myPickerView.frame), 
CGRectGetHeight(myPickerView.frame)); 

myPickerView.hidden = YES; 

После этого вы можете оживить вид снизу вверх, установив рамку снова в анимации блока, а также может отобразить его.

Когда вы нажмете клавишу, снова оставьте вид и установите рамку, как указано выше.

Ниже приведен код для анимации

- (IBAction)showPicker:(UIButton *)sender { 

self.myPickerView.hidden = NO; 
[UIView animateWithDuration:0.5 animations:^{ 
[self.myPickerView setFrame:CGRectMake(0, 
100, 
CGRectGetWidth(self.myPickerView.frame), 
CGRectGetHeight(self.myPickerView.frame))]; 

}]; 
} 

действия на кнопку Готова:

-(IBAction)doneClicked:(id)sender { 

self.myPickerView.hidden = NO; 
[UIView animateWithDuration:0.5 animations:^{ 
    [self.myPickerView setFrame:CGRectMake(CGRectGetMinX(self.view.bounds), 
              CGRectGetMaxY(self.view.bounds), 
              CGRectGetWidth(self.myPickerView.frame), 
              CGRectGetHeight(self.myPickerView.frame))]; 

}]; 

}

Надеется, что это помогает.

Смежные вопросы