5

Quiero hacer mi barra de navegación uno con esquinas redondeadas (la parte superior izquierda y derecha)objetivo c - UINavigationBar con esquinas redondeadas

me encontré con este código que haga que sucede:

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; 

Pero tiene un problema, ahora que la barra nab no tiene el borde de la esquina, es transparente en miles de esquinas y puedo ver la vista detrás de ella.
No quiero que sea transparente Quiero poner algo de color negro allí.
¿Alguien sabe cómo hacer eso?

+0

¿Por qué exactamente tiene OpenGL como una etiqueta? –

Respuesta

5

Asumiendo que esto es un controlador de navegación de nivel superior, algo como esto debería funcionar para usted:

self.window.backgroundColor = [UIColor blackColor]; 

sólo palo que, en su application:didFinishLaunchingWithOptions:

De no ser así, sólo tiene que utilizar una imagen de barra de navegación con esquinas negras :

enter image description here

+0

gracias, pero esta no es una buena solución para mí, tengo muchas vistas diferentes detrás de la barra de navegación. – Eyal

+0

> De lo contrario, solo use una imagen de la barra de navegación con las esquinas negras - SÍ, creo que esta es una mejor solución :) también muy fácil de hacer en Photoshop y más eficiente que dibujar esquinas redondeadas en la pantalla. – Eyal

+0

BTW esta es una gran imagen de barra de navegación ¿puedo usarla en mi aplicación? – Eyal