HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何更改UINavigationBar底部边框的颜色?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我阅读了许多主题,但没有一个在最新版本的 Swift的清晰,一致的答案中解决了这个问题.

例如,this question的最佳答案表明UINavigationBar.appearance().setShadowImage().但是,最新版本的swift中不存在这样的方法.

我不想隐藏底部边框.我只是想改变颜色.

另外,能够改变高度会很棒,但我知道我在一个问题上问得太多了.

编辑:我创建了一个2×1像素图像并将其设置为shadowImage,但边框保持不变:

UINavigationBar.appearance().barTintColor = UIColor.whiteColor()
UINavigationBar.appearance().shadowImage = UIImage(named: "border.jpg") //in my AppDelegate,for global appearance

这是图像;它真的很小:

解决方法

SWIFT 2.x:

出于方便,我扩展了UIImage()以允许我基本上将它用作下面代码的颜色.

extension UIImage {
    class func imageWithColor(color: UIColor) -> UIImage {
        let rect = CGRectMake(0,1.0,0.5)
        UIGraphicsBeginImageContextWithOptions(rect.size,false,0)
        color.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}

接下来,您需要在代码添加以下行,以调整viewController的UINavigationBar的阴影图像或此实例中的颜色.

// Sets Bar's BACkground Image (Color) //
self.navigationController?.navigationBar.setBACkgroundImage(UIImage.imageWithColor(UIColor.blueColor()),forBarMetrics: .Default)
// Sets Bar's Shadow Image (Color) //
self.navigationController?.navigationBar.shadowImage = UIImage.imageWithColor(UIColor.redColor())

SWIFT 3.x / 4.x:

扩展代码

extension UIImage {
    class func imageWithColor(color: UIColor) -> UIImage {
        let rect = CGRect(x: 0.0,y: 0.0,width: 1.0,height: 0.5)
        UIGraphicsBeginImageContextWithOptions(rect.size,0.0)
        color.setFill()
        UIRectFill(rect)
        let image : UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
}

NavigationBar代码

// Sets Bar's BACkground Image (Color) //
navigationController?.navigationBar.setBACkgroundImage(UIImage.imageWithColor(color: .bluE),for: .default)
// Sets Bar's Shadow Image (Color) //
navigationController?.navigationBar.shadowImage = UIImage.imageWithColor(color: .red)

编辑1:

更新了扩展代码,因此您可以调整rect大小而不更改UIImage颜色不透明度.

编辑2:

添加了Swift 3 Swift 4代码.

大佬总结

以上是大佬教程为你收集整理的ios – 如何更改UINavigationBar底部边框的颜色?全部内容,希望文章能够帮你解决ios – 如何更改UINavigationBar底部边框的颜色?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。