2010-07-19 19 views
10

Nel mio iPad mirino (iTunes Link), sto cercando di ricreare l'aspetto di un'UISegmentedControl come si è visto nel footer di costruzione di Keynote In popover:Utilizzando un UISegmentedControl nel piè di pagina UIPopoverController

Keynote

L'iPad HIG suggerisce di utilizzare una UIToolbar allineata in basso, ma l'aspetto non è corretto. Questa schermata mostra Black Opaque, ma nessuno degli stili standard corrisponde a Keynote.

Viewfinder

Qualche consiglio su ricreare l'aspetto Keynote sarebbe apprezzato. Se non hai Keynote sull'iPad, puoi vedere la stessa tecnica nel footer del popover Segnalibri in Maps.

risposta

18

Quello che ti serve è impostare toolbarItems sul tuo top UIViewController nel tuo UIPopover e configurarlo correttamente. Si consideri qualcosa di simile:

 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: Ora ho capito, solo che non impostare il tintColor, esso erediterà il colore giusto (qualunque esso sia). Lo screenshot qui sotto ora appare esattamente come quello di Google Maps App:

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

+0

tuttavia i pulsanti di controllo segmentati non sembrano ancora a posto. –

+0

Come ho scritto, è necessario capire il tintColor corretto e impostarlo chiamando ctrl.tintColor = [UIColor whateverColor]. Potresti provare a usare Photoshop per ottenere il colore. Poiché non ho Photoshop e non ho altre possibilità di ottenere il colorcode dagli screenshot, scelgo semplicemente un colore arbitrario. Inoltre non ho voglia di provare in modo casuale in questo momento. – thatsdisgusting

+0

Quindi tintColor cambierà il colore dei pulsanti, non solo lo sfondo? –

-1

sembra che stiano posizionando il controllo segmentato nella vista a piè di pagina del TableView. (primo screenshot). Vorrei provare che, se possibile, altrimenti potresti forse lavorare sulla sottoclasse di UIToolbar e sovrascrivere drawRect: per ottenere l'aspetto che desideri.

+0

Sto lavorando per fare qualcosa di molto simile ora e ho trovato questa domanda con la mia risposta inutile su di esso. interessante. –

1

Ho appena incontrato questo problema. Devi inserire un UINavigationController nell'UIPopover. La tua vista dovrebbe quindi essere inclusa in quel controller di navigazione. Ciò ottiene la barra superiore (la barra di navigazione si adatta in modo corretto). Suppongo che la barra in basso segua questo, ma non l'ho provato!

Problemi correlati