iOS – 和UIToolbars
我一直试图在UIToolbar
中使用[UIColor clearColor]
,试图使一个自定义的控制界面更适合一个“机械”应用程序(Thinkbutton,你会看到在70年代的电影)。
发生什么事情是,当我设置清除颜色的工具栏是它变成哑黑色。 背后的图像是红色,棕褐色和黑色,所以我确信它不能按预期工作。
我看到的一个区别是,我使用导航控制器上的工具栏,而不是一个独立的UIToolbar
。
代码行是
self.navigationController.toolbar.translucent = YES; self.navigationController.toolbar.backgroundColor = [UIColor clearColor];
和我的上部导航栏(这是在另一个视图中设置)是UIBarStyleBlackTranslucent
,这可以把它扔掉吗?
任何帮助追踪这将是很大的。
您可以使用以下代码为导航控制器的工具栏设置透明背景:
// UIToolbar.h @interface UIToolbar (Transparency) - (void)drawRect:(CGRect)rect; @end // UIToolbar.m #import "TransparentToolbar.h" @implementation UIToolbar (Transparency) - (void)drawRect:(CGRect)rect { [[UIColor clearColor] set]; CGContextFillRect(UIGraphicsGetCurrentContext(), rect); } @end
用法:
// bar_bottom_bumped.png is a toolbar image with transparency UIImage *bg = [UIImage imageNamed:@"bar_bottom_bumped.png"]; UIImageView *background = [[UIImageView alloc] initWithImage:bg]; background.frame = self.navigationController.toolbar.bounds; background.autoresizingMask = UIViewAutoresizingFlexibleWidth; BOOL isIOS5 = [[[UIDevice currentDevice] systemVersion] intValue] >= 5; self.navigationController.toolbar.backgroundColor = [UIColor clearColor]; [self.navigationController.toolbar insertSubview:background atIndex: (isIOS5 ? 1 : 0)];