2011-05-09 28 views
15

En la versión de iPhone de mi aplicación, tengo un UIDatePicker en un UIActionSheet. Aparece correctamente Ahora estoy configurando la versión de iPad de la aplicación, y el mismo UIActionSheet cuando se ve en el iPad aparece como un cuadro en blanco en blanco.UIDatePicker en UIActionSheet en el iPad

Aquí está el código que estoy utilizando:

UIDatePicker *datePickerView = [[UIDatePicker alloc] init]; 
    datePickerView.datePickerMode = UIDatePickerModeDate; 

    self.dateActionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose a Follow-up Date" 
                delegate:self cancelButtonTitle:nil 
            destructiveButtonTitle:nil otherButtonTitles:@"Done", nil]; 

    [self.dateActionSheet showInView:self.view]; 
    [self.dateActionSheet addSubview:datePickerView]; 
    [self.dateActionSheet sendSubviewToBack:datePickerView]; 
    [self.dateActionSheet setBounds:CGRectMake(0,0,320, 500)]; 

    CGRect pickerRect = datePickerView.bounds; 
    pickerRect.origin.y = -95; 
    datePickerView.bounds = pickerRect; 
+2

pregunta me ayudó a entender cómo Apple espera que los usuarios utilicen de Popovers y ActionSheets en el iPad mucho mejor que su documentación. Gracias. – decoy

+0

Verifique mi respuesta que puede usar completa para usted. https://stackoverflow.com/a/7343106/815179 – Narayana

+0

Gracias @Narayana, pero esta pregunta fue de hace 6 años :-) – Chris

Respuesta

21

terminé creando un segmento separado del código para el Popover iPad:

//build our custom popover view 
UIViewController* popoverContent = [[UIViewController alloc] init]; 
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)]; 
popoverView.backgroundColor = [UIColor whiteColor]; 

datePicker.frame = CGRectMake(0, 44, 320, 300); 

[popoverView addSubview:toolbar]; 
[popoverView addSubview:datePicker]; 
popoverContent.view = popoverView; 

//resize the popover view shown 
//in the current view to the view's size 
popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 244); 

//create a popover controller 
UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent]; 

//present the popover view non-modal with a 
//refrence to the button pressed within the current view 
[popoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem 
          permittedArrowDirections:UIPopoverArrowDirectionAny 
              animated:YES]; 

//release the popover content 
[popoverView release]; 
[popoverContent release]; 
+1

Esto es genial, sin embargo, aparece el cuadro blanco vacío encima del selector de fecha que se espera. ¿Alguien sabe cómo puedo usar esta propiedad inmobiliaria de alguna manera? Me gustaría establecer un título aquí. – AbuZubair

+0

@AbuZubair es posible que solo deba establecer un valor negativo en un CGRect para que aparezca una etiqueta en el espacio no utilizado, jacky, pero podría funcionar. : - / –

Cuestiones relacionadas