大佬教程收集整理的这篇文章主要介绍了ios – 如何更改UINavigationBar底部边框的颜色?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,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
出于方便,我扩展了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:
以上是大佬教程为你收集整理的ios – 如何更改UINavigationBar底部边框的颜色?全部内容,希望文章能够帮你解决ios – 如何更改UINavigationBar底部边框的颜色?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。