有沒有辦法在UINavigationBar的背景中添加圖像。通過界面構建器沒有直接的選擇,但我看到應用程序實現了這個東西。在UINavigationBar中添加背景圖像
任何幫助,將不勝感激。
感謝
有沒有辦法在UINavigationBar的背景中添加圖像。通過界面構建器沒有直接的選擇,但我看到應用程序實現了這個東西。在UINavigationBar中添加背景圖像
任何幫助,將不勝感激。
感謝
創建UIView
並將其添加爲一個子視圖。您可以使用setBackgroundImage:forBarMetrics:
。來源:https://stackoverflow.com/a/7765102/313875
只需將您的背景添加爲子視圖,如jrtc27所示,並根據您的需要更改色調顏色。
您也可以重寫drawRect函數。
@implementation UINavigationBar (UINavigationBarCustom)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"nav_bar_logo.png"];
[image drawInRect:rect];
}
@end
您也可以覆蓋drawLayer:inContext的:在UINavigationBar的類別類方法。在drawLayer:inContext:方法中,您可以繪製想要使用的背景圖像。如果您願意,還可以使用不同大小的圖像進行縱向和橫向取向。
- (void) drawLayer:(CALayer *)layer inContext:(CGContextRef)context
{
if ([self isMemberOfClass:[UINavigationBar class]] == NO) {
return;
}
UIImage *image = (self.frame.size.width > 320) ?
[UINavigationBar bgImageLandscape] : [UINavigationBar bgImagePortrait];
CGContextClip(context);
CGContextTranslateCTM(context, 0, image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage);
}
我最近寫了一篇關於UINavigatioBar和UIToolbar的背景定製的文章。 http://leonov.co/2011/04/uinavigationbar-and-uitoolbar-customization-ultimate-solution/
使用此代碼
UIImage *backgroundImage = [UIImage imageNamed:@"strip.png"];
[upnavbar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
這個WIL工作 - 您可以通過以下鏈接找到您的應用中這個功能無縫集成,代碼示例和類別。
已更新,以反映這不再是實現它的方式。 – jrtc27 2015-01-22 17:13:16
很高興看到有人保持他們的答案是最新的。謝謝! – 2015-01-22 17:14:43