【问题标题】: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)

但是每次,无论它在哪条线上,栏都会开始看起来像这样,而不是我设置的蓝色......

【问题讨论】:

标签: ios swift xcode


【解决方案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://stackoverflow.com/a/35151251/1585677

    【讨论】:

    • 你能发布一个 Swift 的答案吗?这对我没有帮助
    • 我确实展示了确切的代码,并说它在我上面的问题中不起作用......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2012-08-28
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多