2013-04-26 32 views
5

Voglio rendere il mio UIToolBar avere uno sfondo trasparente (simile a iBooks) ma non ho fortuna con l'impostazione della proprietà translucent.Come rendere trasparente lo sfondo di UIToolbar?

Ecco il mio codice:

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    NSMutableArray *toolBarItems = [[NSMutableArray alloc] init]; 
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]]; 
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Source" style:UIBarButtonItemStyleBordered target:nil action:nil]]; 
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Aa" style:UIBarButtonItemStyleBordered target:nil action:nil]]; 
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Rabbit" style:UIBarButtonItemStyleBordered target:nil action:nil]]; 
    toolBar.items = toolBarItems; 
    toolBar.translucent = YES; 
    [self.view addSubview:toolBar]; 

Viene ancora fuori in questo modo:

enter image description here

+1

Credo che sarà necessario impostare un'immagine di sfondo trasparente per fare ciò. Basta creare un png trasparente 1x1 pixel. – MTurner

+0

@doug Smithh come uitoolbar è una sottoclasse di uiview puoi usare la sua proprietà layer per renderla trasparente cambiando il valore di alpha –

+0

Dai uno sguardo a: http://stackoverflow.com/questions/2468831/couldnt-uitoolbar- be-transparent # answer-3253738 – Shad

risposta

23

Se si desidera barra degli strumenti come trasparente:

[toolBar setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 

e se si vuole barra degli strumenti come traslucido:

[toolBar setBarStyle:UIBarStyleBlack]; 
toolBar.translucent = YES; 

Spero che ti aiuta.

+0

Puoi spiegare il metodo che hai usato per trasparente? –

+1

Il metodo Transparent mostra ancora una barra sottile nella parte superiore del bordo della barra degli strumenti, come eliminarlo? – Malloc

+1

Bella soluzione elegante per iOS 7 –

2

Una possibilità è quella sottoclasse UIToolbar e sovrascrivere il metodo draw, i pulsanti continueranno a disegnare se stessi normale:

@interface TransparentToolbar : UIToolbar 
{ 
} 

@implementation TransparentToolbar 

// drawRect stub, toolbar items will still draw themselves 
- (void)drawRect:(CGRect)rect 
{ 
    return; 
} 

@end 
Problemi correlati