2011-06-30 33 views
15

No estoy intentando cambiar el tamaño de la altura de PickerView. Estoy bien con tener el tamaño predeterminado, que creo que es de 320 x 216. He creado este código para presentar un pickerView en mi popovercontroller, sin embargo, consigo estos mensajes en la consola:UIPIckerView en UIPopoverController

011-06-30 13:18:28.125 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value 1024.0 pinned to 216.0 
2011-06-30 13:18:28.126 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value 448.0 pinned to 216.0 
2011-06-30 13:18:28.127 MiGenome[64357:207] -[UIPickerView setFrame:]: invalid height value -16.0 pinned to 162.0 

No sé por qué obtengo esto ya que estoy tratando de usar el tamaño predeterminado del selector en el popover. Aquí está mi código. Gracias.

- (IBAction)presentSortPopover { 
    UIViewController *sortViewController = [[UIViewController alloc] init]; 

    UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, sortViewController.view.bounds.size.width, sortViewController.view.bounds.size.height)]; 
    sortViewController.view = sortPickerView; 
    sortViewController.contentSizeForViewInPopover = CGSizeMake(320, 216); 
    sortPickerView.delegate = self; 
    sortPickerView.dataSource = self; 
    sortPickerView.showsSelectionIndicator = YES; 

    self.SortPopover = [[UIPopoverController alloc] initWithContentViewController:sortViewController]; 
    [self.SortPopover presentPopoverFromRect:_sortButtonPop.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

    [sortPickerView release]; 
    [sortViewController release]; 
} 
+0

¿Cuáles son los límites (tamaño/ancho) de su sortViewController? Está configurando el marco de UIPickerView en su método initWithFrame; si no es del tamaño que desea, tendrá que cambiar la llamada CGRectMake para incluir el valor correcto. – Zeppomedio

+0

Sí, lo intenté originalmente también. Traté de crear el marco de mi sortViewController para que también sea 320,216, pero sigo recibiendo esas declaraciones en la consola. Además, si cambiara la altura del 216 a 500, NO vería ningún cambio. Solo vi cambio si cambiaba la propiedad contentSizeForViewInPopover. – Crystal

+1

Cualquier suerte con este problema. Estoy teniendo exactamente el mismo problema. Creo que el Popover está tratando de cambiar el tamaño del marco del selector. – Bach

Respuesta

1

Creo que esta línea es la culpable.

UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, sortViewController.view.bounds.size.width, sortViewController.view.bounds.size.height)]; 

tratar

UIPickerView *sortPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)]; 
+0

Sí, eso es lo que originalmente tuve. Intenté originalmente hacer el rect 320, 216, luego pensé que tal vez eso me estaba dando el problema. Así que traté de no establecerlo en un número, y simplemente completar el cuadro. Desafortunadamente, recibo el error en ambos sentidos. : - \. ¡Gracias por tu aporte! – Crystal

10

que tenían el mismo problema hasta que incrustado el UIPickerView en un genérico UIView con las mismas dimensiones (0, 0, 320, 216), y programar una vista de la propiedad del controlador de vista de la UIView.

Además, utilicé el método setPopoverContentSize:animated: en el UIPopoverViewController para establecer las dimensiones del popover, en lugar de configurarlo en el UIViewController.

Espero que ayude.

+1

También recibía el error '- [UIPickerView setFrame:]: valor de altura no válido' ... porque había establecido el autoresizingMask en UIPickerView. –

1

tiene un método contentSizeForViewInPopover. Si configura el tamaño esperado para su controlador de vista que lo usa (utilizando un CGSize) podrá evitar que el UIPopoverController se cambie de tamaño incorrectamente.