Agregue UIPickerView y un botón en la hoja de acción: ¿cómo?

Resuelto sagarkothari asked hace 54 años • 11 respuestas

Mi solicitud requiere que se agreguen las siguientes cosas en una hoja de acción.

  • Barra de herramientas UI
  • Botón en la barra de herramientas UI
  • Control UIPicker

He incluido una imagen para comprender mis requisitos.

texto alternativo

¿Podría explicar cómo se puede implementar esto?

sagarkothari avatar Jan 01 '70 08:01 sagarkothari
Aceptado

Una solución más:

  • sin barra de herramientas pero con un control segmentado (eyecandy)

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil 
                                                        delegate:nil
                                                        cancelButtonTitle:nil
                                                        destructiveButtonTitle:nil
                                                        otherButtonTitles:nil];
    
    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
    
    CGRect pickerFrame = CGRectMake(0, 40, 0, 0);
    
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
    pickerView.showsSelectionIndicator = YES;
    pickerView.dataSource = self;
    pickerView.delegate = self;
    
    [actionSheet addSubview:pickerView];
    [pickerView release];
    
    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]];
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
    closeButton.tintColor = [UIColor blackColor];
    [closeButton addTarget:self action:@selector(dismissActionSheet:) forControlEvents:UIControlEventValueChanged];
    [actionSheet addSubview:closeButton];
    [closeButton release];
    
    [actionSheet showInView:[[UIApplication sharedApplication] keyWindow]];
    
    [actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
    
marcio avatar Jan 15 '2010 20:01 marcio

Aunque esta pregunta es antigua, mencionaré rápidamente que he creado una clase ActionSheetPicker con una función conveniente, para que puedas generar una ActionSheet con UIPickerView en una línea. Se basa en el código de las respuestas a esta pregunta.

Editar: ahora también admite el uso de DatePicker y DistancePicker.


ACTUALIZACIÓN:

Esta versión está en desuso: utilice ActionSheetPicker-3.0 en su lugar.

animación

TimCinel avatar Jan 07 '2011 03:01 TimCinel