W mojej funkcji delegata didFinishLaunchingWithOptions próbuję dostosować wygląd paska nawigacji.Jak ustawić nieprzejrzysty obraz wysokiego poziomu 1px dla paska 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)
];
Spodziewam się 1px wysoki nieprzezroczysty czerwony cień. Zamiast tego otrzymuję 2px wysoki półprzezroczysty czerwony cień. Jak sprawić, by wyglądał dokładnie tak, jak tego chcę? Zrobiłem analogiczne ustawienia wyglądu do UITabBar. Z drugiej strony zachowuje się ładnie.
Funkcja kategoria, która tworzy dynamicznych obrazów jest zdefiniowany jako tak:
+ (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;
}
pan spojrzał tylko dodanie cienia do CALayer? zobacz http://stackoverflow.com/questions/805872/how-do-i-draw-a-shadow-under-a-viewview – cmyr
@ cmyr '[UINavigationBar appearance] .layer.borderWidth = 0.5f; [UINavigationBar appearance] .layer.borderColor = [UIColor redColor] .CGColor; 'nic nie pokazuje pod paskiem nawigacji. – Pwner
czy ustawiłeś klipy na klocki na NIE? – cmyr