使UINavigationBar透明

如何使UINavigationBar透明?尽管我希望其栏项目保持可见。



米琪卡哇伊
浏览 958回答 3
3回答

饮歌长啸

如果有人想知道如何在iOS 7+中实现此目标,请使用以下解决方案(也兼容iOS 6)在Objective-C中[self.navigationBar setBackgroundImage:[UIImage new]                         forBarMetrics:UIBarMetricsDefault];self.navigationBar.shadowImage = [UIImage new];self.navigationBar.translucent = YES;在Swift 3(iOS 10)中self.navigationBar.setBackgroundImage(UIImage(), for: .default)self.navigationBar.shadowImage = UIImage()self.navigationBar.isTranslucent = true迅速2self.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)self.navigationBar.shadowImage = UIImage()self.navigationBar.translucent = true讨论区由于文档中讨论的行为,在导航栏上设置translucent为可以YES解决问题UINavigationBar。我将在这里报告相关片段:如果将此属性设置为YES带有不透明自定义背景图像的导航栏,则导航栏将对图像应用小于1.0的系统不透明度。

侃侃尔雅

在iOS5中,您可以执行以下操作以使导航栏透明:nav.navigationBar.translucent = YES; // Setting this slides the view up, underneath the nav bar (otherwise it'll appear black)const float colorMask[6] = {222, 255, 222, 255, 222, 255};UIImage *img = [[UIImage alloc] init];UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];[nav.navigationBar setBackgroundImage:maskedImage forBarMetrics:UIBarMetricsDefault]; [img release];

忽然笑

对于任何想要在Swift 2.x中执行此操作的人:self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)self.navigationController?.navigationBar.shadowImage = UIImage()self.navigationController?.navigationBar.translucent = true或Swift 3.x:self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)self.navigationController?.navigationBar.shadowImage = UIImage()self.navigationController?.navigationBar.isTranslucent = true
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS