删除导航栏下方的阴影线而不删除栏颜色?
Posted
技术标签:
【中文标题】删除导航栏下方的阴影线而不删除栏颜色?【英文标题】:Remove Shadow Line Below Navigation Bar Without Removing Bar Color? 【发布时间】:2016-08-05 19:08:59 【问题描述】:我尝试了许多类似问题中显示的答案,但没有一个对我有用。我正在尝试删除导航栏 1px 阴影,但我尝试的一切最终都删除了栏颜色并使其变为白色/一些浅色。知道如何删除它(在 App Delegate 中?)
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
let redPart: CGFloat = CGFloat(65) / 255
let greenPart: CGFloat = CGFloat(107) / 255
let bluePart: CGFloat = CGFloat(166) / 255
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
UINavigationBar.appearance().barTintColor = UIColor(red: redPart, green: greenPart, blue: bluePart, alpha: 1.0)
//Set the colors for bar button items and text
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor(), NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 22)!]
// Override point for customization after application launch.
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.checkForReachability(_:)), name: kReachabilityChangedNotification, object: nil);
self.reachability = Reachability.reachabilityForInternetConnection();
self.reachability!.startNotifier()
return true
上面是我的代码,这是我尝试过的:
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
但是每次,无论它在哪条线上,栏都会开始看起来像这样,而不是我设置的蓝色......
【问题讨论】:
可能的重复:***.com/questions/32208378/… 但是有可能,请检查 Chameleon 是如何做到的:github.com/ViccAlexander/Chameleon/blob/master/Pod/Classes/… 或 github.com/samwize/UINavigationBar-Addition How to hide ios7 UINavigationBar 1px bottom line的可能重复 【参考方案1】:你用来去除阴影的线条很好
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
但您还需要确保导航栏不是半透明的(默认情况下是半透明的),以显示您的实心 barTintColor
UINavigationBar.appearance().isTranslucent = false
【讨论】:
【参考方案2】:在你的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
放置这个:
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
斯威夫特:
放在下面的代码
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: .Any, barMetrics: .Default)
UINavigationBar.appearance().shadowImage = UIImage()
下面的内部方法
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
来源:https://***.com/a/35151251/1585677
【讨论】:
你能发布一个 Swift 的答案吗?这对我没有帮助 我确实展示了确切的代码,并说它在我上面的问题中不起作用......以上是关于删除导航栏下方的阴影线而不删除栏颜色?的主要内容,如果未能解决你的问题,请参考以下文章