Как добавить кнопку поверх PickerView и Как закрыть PickerView при нажатии этой кнопки? - PullRequest
1 голос
/ 12 декабря 2011

У меня есть UIPickerView. Я хочу кнопку «Готово» в верхней части окна «Сборщик» и хочу закрыть представление «Сборщик» при нажатии кнопки «Готово». Можете ли вы помочь мне в этом?

Ответы [ 3 ]

6 голосов
/ 12 декабря 2011

добавить лист действий к вашему виду, а затем добавить панель инструментов с кнопкой «Готово» в верхней части листа действий и ниже добавьте свой подборщик в лист действий в готово нажмите кнопку написать ниже метод, чтобы отклонить лист действий

[actionSheet dismissWithClickedButtonIndex:0 animated:YES];

actionSheet=[[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
    [actionSheet showInView:self.view];
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,320,40)];
[pickerToolbar sizeToFit];
    pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
    [barItems addObject:cancelBtn];
    [cancelBtn release];
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    [barItems addObject:flexSpace];
    [flexSpace release];
    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
    [barItems addObject:doneBtn];
    [doneBtn release];
    [pickerToolbar setItems:barItems animated:YES];
    [actionSheet addSubview:pickerToolbar];
    [barItems release];
    [pickerToolbar release];

UIPickerView *picker = [[UIPickerView alloc] init];
picker.frame = CGRectMake(0, 44, 320, 216);
picker.delegate  = self;
        picker.dataSource = self;
        picker.showsSelectionIndicator = YES;
[actionSheet addSubview:picker];
[picker release];

-(void)done_clicked:(id)sender
{
    [actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
-(void)cancel_clicked:(id)sender
{
    [actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
1 голос
/ 12 декабря 2011

Вы можете использовать панель инструментов для той же цели.Взгляните на эту ссылку .Здесь то же решение принимается во внимание.Надеюсь, что это может помочь вам.Спасибо.

0 голосов
/ 27 марта 2013

каждое тело взяло лист действий, а затем добавило кнопку панели, но просто добавило uibutton из вида и метод take remove из супер-вида.показать приведенный ниже пример, я попробовал этот код успешно.я думаю, что это очень полезный код без использования листа действий

 -(void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"the marray data is %@",marray); // [self showpicker1]; if (marray.count == 0) { UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"NO DATA FOUND" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; }

[self showpicker1];
}

-(void)showpicker1 { //view1=[[UIView alloc] initWithFrame:CGRectMake(55, 59, 171, 80)]; //[self.view addSubview:view1]; pv = [[UIPickerView alloc] initWithFrame:CGRectMake(55,79,171,0)]; pv.delegate = self; pv.dataSource = self; pv.showsSelectionIndicator = YES; [self.view addSubview:pv]; done=[UIButton buttonWithType:UIButtonTypeRoundedRect]; [done setFrame:CGRectMake(55, 59, 171, 20)]; [done setTitle:@"DONE" forState:UIControlStateNormal]; [done addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchDown]; [self.view addSubview:done]; } -(void)dismiss { [pv removeFromSuperview]; [done removeFromSuperview]; }
...