Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将分隔符添加到UINavigationBar-iOS_Ios_Iphone_Swift_Uinavigationbar - Fatal编程技术网

将分隔符添加到UINavigationBar-iOS

将分隔符添加到UINavigationBar-iOS,ios,iphone,swift,uinavigationbar,Ios,Iphone,Swift,Uinavigationbar,我注意到apple clock应用程序的标题上有一个细条,将其与内容很好地分开,并使界面看起来有点3D。我想在我自己的导航栏上复制它,但找不到这样做的方法?我将如何实现这一点 我在UINavigationBar上创建了一个扩展,用于显示或隐藏分隔线。 默认情况下,我注意到UINavigationBar默认有一个分隔符 extension UINavigationBar { func hideNavBarSeparator() { let image = UIImage

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


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

extension UINavigationBar {

    func hideNavBarSeparator() {
        let image = UIImage()
        shadowImage = image
        setBackgroundImage(image, for: UIBarMetrics.default)
    }

    func showNavBarSeparator() {
        let img = UIImage.pixelImageWithColor(color: UIColor.red)
        shadowImage = img
    }
}

extension UIImage {
    class func pixelImageWithColor(color: UIColor) -> UIImage? {
        let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
        UIGraphicsBeginImageContext(rect.size)
        guard let context = UIGraphicsGetCurrentContext() else { return nil }
        context.setFillColor(color.cgColor)
        context.fill(rect)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return image
    }
}
以下是如何使用它:

yourNavigationBar.hideNavBarSeparator()

yourNavigationBar.showNavBarSeparator()


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

extension UINavigationBar {

    func hideNavBarSeparator() {
        let image = UIImage()
        shadowImage = image
        setBackgroundImage(image, for: UIBarMetrics.default)
    }

    func showNavBarSeparator() {
        let img = UIImage.pixelImageWithColor(color: UIColor.red)
        shadowImage = img
    }
}

extension UIImage {
    class func pixelImageWithColor(color: UIColor) -> UIImage? {
        let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
        UIGraphicsBeginImageContext(rect.size)
        guard let context = UIGraphicsGetCurrentContext() else { return nil }
        context.setFillColor(color.cgColor)
        context.fill(rect)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return image
    }
}
以下是如何使用它:

yourNavigationBar.hideNavBarSeparator()

yourNavigationBar.showNavBarSeparator()


您可以将UIView(高度约束等于1,宽度约束等于超级视图宽度)放在UINavigation栏下。请看一看,谢谢,但这就是移除边界的方法?我想添加它你可以将UIView(高度约束等于1,宽度约束等于超级视图宽度)放在UINavigation栏下。看看这个谢谢,但这就是如何移除边界的方法?我想补充一下