2016-08-05 4 views
0

Я пробовал многие ответы, показанные в похожих вопросах, но ни один из них не работал для меня. Я пытаюсь удалить панель навигации 1px shadow, но все, что я пробовал, заканчивает удаление цвета панели и делает ее белой/немного светлой. (? В App делегата) Любая идея, как удалить егоСнимите теневую линию под навигационной панелью без удаления цвета панели?

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) 

Но каждый раз, независимо от того, какой линии он находится на , бар начинает выглядеть вместо синего цвета я приставил его ...

+0

Возможное дублирование: HTTP : //stackoverflow.com/questions/32208378/how-to-remove-the-shadow-line-from-a-navigation-bar? rq = 1 Однако это возможно, проверьте, как Хамелеон сделал это: https://github.com/ViccAlexander/Chameleon/blob/master/Pod/Classes/Objective-C/UINavigationController%2BChameleon.m или https: // githu b.com/samwize/UINavigationBar-Addition/ – Grubas

+0

Возможный дубликат [Как скрыть iOS7 UINavigationBar 1px нижняя строка] (http://stackoverflow.com/questions/19226965/how-to-hide-ios7-uinavigationbar-1px-bottom -line) – jjatie

ответ

3

линий вы использовали для удаления ша доу отлично

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]]; 

Swift:

место под кодом

UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: .Any, barMetrics: .Default) 
UINavigationBar.appearance().shadowImage = UIImage() 

внутри метода ниже

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

источник: https://stackoverflow.com/a/35151251/1585677

+0

Можете ли вы опубликовать быстрый ответ? Это не очень помогает мне –

+0

отредактировал мое сообщение, см. Выше –

+0

Я буквально показал этот точный код и сказал, что он не работает в моем вопросе выше ... –

Смежные вопросы