Nella mia funzione delFinishLaunchingWithOptions del mio programma, cerco di personalizzare l'aspetto della mia barra di navigazione.Come impostare un'ombra alta 1px opaca per una UINavigationBar?
[UINavigationBar appearance].translucent = NO;
[[UINavigationBar appearance]
setBackgroundImage:[UIImage
imageWithColor:[UIColor whiteColor]
size:CGSizeMake(1.0f, 1.0f)
]
forBarMetrics:UIBarMetricsDefault
];
[UINavigationBar appearance].shadowImage = [UIImage
imageWithColor:[UIColor redColor]
size:CGSizeMake(0.5f, 0.5f)
];
Mi aspetto un'ombra rossa opaca alta 1 px. Invece mi viene data un'ombra rossa traslucida alta 2px. Come può farlo apparire esattamente come lo voglio? Ho fatto le impostazioni di aspetto analogo a UITabBar. D'altra parte, si comporta bene.
La funzione categoria che crea immagini dinamiche è definito come modo:
+ (UIImage*)imageWithColor:(UIColor *)color size:(CGSize)size
{
CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
hai guardato in solo l'aggiunta di un'ombra alla CALayer? vedere http://stackoverflow.com/questions/805872/how-do-i-draw-a-shadow-under-a-uiview – cmyr
@cmyr '[UINavigationBar appearance] .layer.borderWidth = 0.5f; [UINavigationBar appearance] .layer.borderColor = [UIColor redColor] .CGColor; 'non mostra nulla sotto la barra di navigazione. – Pwner
hai impostato le clip del livello su suoni su NO? – cmyr