5

Voglio fare la mia barra di navigazione uno con gli angoli arrotondati (in alto a sinistra e destra)Objective C - UINavigationBar con angoli arrotondati

Ho trovato questo codice che realizzarlo:

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; 

Ma ha un problema, ora che la barra nab non ha il bordo dell'angolo, è trasparente in mille angoli e posso vedere la vista che c'è dietro.
Non voglio che sia trasparente. Voglio mettere del colore nero lì.
Qualcuno sa come farlo?

+0

Perché esattamente si hanno OpenGL come un tag? –

risposta

5

Supponendo che questo è un controller di navigazione di livello superiore, qualcosa di simile a questo dovrebbe funzionare per voi:

self.window.backgroundColor = [UIColor blackColor]; 

solo bastone che nella vostra application:didFinishLaunchingWithOptions:

In mancanza di ciò, basta usare un'immagine barra di navigazione con angoli neri :

enter image description here

+0

grazie, ma questa non è una buona soluzione per me, un sacco di tempo ho diverse viste dietro la barra di navigazione. – Eyal

+0

> In caso contrario, basta usare un'immagine della barra di navigazione con angoli neri - Sì, penso che questa sia una soluzione migliore :) anche molto facile da fare in Photoshop e più efficiente del disegno degli angoli arrotondati sullo schermo. – Eyal

+0

BTW questa è un'ottima immagine della barra di navigazione posso usarla nella mia app? – Eyal