2013-04-26 22 views
5

Chcę, aby mój UIToolBar miał przezroczyste tło (podobnie jak iBooks), ale nie mam szczęścia przy ustawianiu właściwości translucent.Jak uczynić tło UIToolbar przezroczystym?

Oto mój kod:

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]; 

Nadal wychodzi tak:

enter image description here

+1

Uważam, że w tym celu należy ustawić przezroczysty obraz tła. Po prostu utwórz przezroczysty png o wielkości 1 x 1 piksel. – MTurner

+0

@doug Smithh jako uitoolbar jest podklasą uiview, możesz użyć jej właściwości warstwy, aby uczynić ją przezroczystą poprzez zmianę wartości alpha –

+0

Spójrz na: http://stackoverflow.com/questions/2468831/couldnt-uitoolbar- be-transparent # answer-3253738 – Shad

Odpowiedz

23

Jeśli chcesz pasek narzędzi jako Transparent:

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

a jeśli chcesz Pasek jako Translucent:

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

Nadzieję, że to pomaga.

+0

Czy mógłbyś wyjaśnić metodę użytą do transparentnego? –

+1

Metoda przezroczysta nadal pokazuje cienki pasek u góry granicy paska narzędzi, jak się go pozbyć? – Malloc

+1

Ładne eleganckie rozwiązanie dla iOS 7 –

2

Jedną z opcji jest do podklasy UIToolbar i zastąpić metodę draw, przyciski będą nadal czerpać same jak zwykle:

@interface TransparentToolbar : UIToolbar 
{ 
} 

@implementation TransparentToolbar 

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

@end 
Powiązane problemy