5

Chcę, aby mój pasek nawigacyjny jeden z zaokrąglonymi rogami (w lewym górnym rogu i prawy)cel c - UINavigationBar z zaokrąglonymi narożnikami

Znalazłem ten kod, aby to się stało:

CALayer *capa = [self.navigationController navigationBar].layer; 
[capa setShadowColor: [[UIColor blackColor] CGColor]]; 
[capa setShadowOpacity:0.85f]; 
[capa setShadowOffset: CGSizeMake(0.0f, 1.5f)]; 
[capa setShadowRadius:2.0f]; 
[capa setShouldRasterize:YES]; 


//Round 
CGRect bounds = capa.bounds; 
bounds.size.height += 10.0f; //I'm reserving enough room for the shadow 
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds 
               byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) 
                cornerRadii:CGSizeMake(10.0, 10.0)]; 

CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
maskLayer.frame = bounds; 
maskLayer.path = maskPath.CGPath; 

[capa addSublayer:maskLayer]; 
capa.mask = maskLayer; 

Ale ma jeden problem, teraz, że nab bar nie ma krawędzi narożnika, jest przezroczysty w tysiącach kątów i widzę widok za nim.
Nie chcę, żeby było przezroczyste Chcę umieścić tam czarny kolor.
Ktoś wie jak to zrobić?

+0

Dlaczego dokładnie masz OpenGL jako tag? –

Odpowiedz

5

Zakładając, że jest to top kontroler nawigacyjny poziom, coś jak to powinno działać dla Ciebie:

self.window.backgroundColor = [UIColor blackColor]; 

Wystarczy trzymać się, że w application:didFinishLaunchingWithOptions:

W przeciwnym razie, po prostu użyć obrazu pasku nawigacyjnym z czarnymi narożnikami :

enter image description here

+0

dziękuję, ale to nie jest dobre rozwiązanie dla mnie, wiele czasu mam różne poglądy za navbar. – Eyal

+0

> W przeciwnym razie wystarczy użyć obrazu paska nawigacji z czarnymi narożnikami - TAK Myślę, że jest to lepsze rozwiązanie :) również bardzo łatwe do zrobienia w Photoshopie i bardziej wydajne niż rysowanie zaokrąglonych narożników na ekranie. – Eyal

+0

BTW to świetny obraz paska nawigacji, czy mogę go użyć w mojej aplikacji? – Eyal