将分隔符添加到UINavigationBar - iOS

时间:2016-11-21 16:31:23

标签: ios iphone swift uinavigationbar

我注意到苹果时钟应用程序的标题上有一个细条,可以很好地将其与内容区分开来,使界面看起来有点3D。我想在我自己的导航栏上复制这个但是看不到这样做的方法?我将如何实现这一目标

timer

my app

1 个答案:

答案 0 :(得分:5)

我在UINavigationBar上创建了一个扩展,以显示或隐藏该分隔线。 默认情况下,我注意到UINavigationBar默认有一个分隔符。

Swift 2.3中的代码

extension UINavigationBar {

func hideNavBarSeperator()
{
    let img = UIImage()
    self.shadowImage = img
    self.setBackgroundImage(img, forBarMetrics: UIBarMetrics.Default)
}

func showNavBarSeperator()
{
    let img = UIImage.pixelImageWithColor(UIColor.redColor())//Use Any Color
    self.shadowImage = img
}
}

extension UIImage {
class func pixelImageWithColor(color: UIColor) -> UIImage {
    let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
    UIGraphicsBeginImageContext(rect.size)
    let context = UIGraphicsGetCurrentContext()

    CGContextSetFillColorWithColor(context!, color.CGColor)
    CGContextFillRect(context!, rect)

    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return image!
}
}

以下是如何使用它:

  

yourNavigationBar.hideNavBarSeperator()

     

yourNavigationBar.showNavBarSeperator()