2010-07-19 11 views
10

En mi IPAD aplicación Visor (iTunes Link), estoy tratando de recrear el aspecto de un UISegmentedControl como se ve en el pie de página de fabricación de Keynote En popover:El uso de un UISegmentedControl en el pie de UIPopoverController

Keynote

El iPad HIG sugiere el uso de una UIToolbar alineada en la parte inferior, pero la apariencia es incorrecta. Esta captura de pantalla muestra Black Opaque, pero ninguno de los estilos estándar coincide con Keynote.

Viewfinder

Cualquier consejo en recrear el aspecto Keynote sería apreciada. Si no tiene Keynote en el iPad, puede ver la misma técnica en el pie de página de Popover de marcadores en Maps.

Respuesta

18

Lo que necesita es configurar el toolbarItems de su top UIViewController en su UIPopover y configurarlo correctamente. Considerar algo como esto:

 NSArray *segmentedItems = [NSArray arrayWithObjects:@"Bookmarks", @"Recents", @"Contacts", nil]; 
     UISegmentedControl *ctrl = [[UISegmentedControl alloc] initWithItems:segmentedItems]; 
     ctrl.segmentedControlStyle = UISegmentedControlStyleBar; 
     ctrl.selectedSegmentIndex = 0; 

     UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:ctrl]; 
     ctrl.frame = CGRectMake(0.0f, 5.0f, 320.0f, 30.0f); 

     NSArray *theToolbarItems = [NSArray arrayWithObjects:item, nil]; 
     [self setToolbarItems:theToolbarItems]; 
     [ctrl release]; 
     [item release]; 

EDIT: Ahora lo tengo, simplemente no establezca el tintColor, heredará el color correcto (lo que sea). La pantalla de abajo ahora es exactamente igual el uno en el Mapa Google App:

alt text http://www.memorylifter.com/services/dev/linklist/SCREENSHOT_TABBAT.png

+0

los botones de control segmentados todavía no se ven bien, sin embargo. –

+0

Como he escrito, debe averiguar el tintColor correcto y configurarlo llamando a ctrl.tintColor = [UIColor whateverColor]. Podría intentar usar Photoshop para obtener el color. Como no tengo Photoshop, y no hay otras posibilidades para obtener el código de color de las capturas de pantalla, simplemente elijo un color arbitrario. Además, no tengo ganas de probar al azar en este momento. – thatsdisgusting

+0

¿El tintColor cambiará el color de los botones, no solo el fondo? –

-1

parece que están colocando el control segmentado en la vista de pie de página de tableView. (primera captura de pantalla). Lo intentaría si fuera posible, de lo contrario podrías trabajar en subclasificar UIToolbar y redefinir drawRect: para obtener el aspecto que deseas.

+0

Estoy trabajando en hacer algo muy similar ahora y encontré esta pregunta con mi inútil respuesta al respecto. interesante. –

1

Me acabo de encontrar con este tema. Necesita insertar un UINavigationController en UIPopover. Su vista debería incluirse en ese controlador de navegación. Esto obtiene la barra superior (la barra de navegación formatea muy bien). ¡Asumo que la barra inferior sigue esto pero no lo he probado!

Cuestiones relacionadas