UItableviewcell可以看到ios中的导航栏

时间:2015-11-30 22:40:47

标签: ios swift uitableview uinavigationbar gradients

我使用以下代码将渐变颜色设置为navigationBar。但是在应用渐变颜色后,我的表格视图单元格会向后滚动到navigationBar,并且顶部cell的内容可以回到navigationBar

let gradient: CAGradientLayer = CAGradientLayer()
        let navigationBar = self.navigationController?.navigationBar.bounds
        let statusBar = UIApplication.sharedApplication().statusBarFrame
        let gradientBounds = CGRectMake(0.0, 0.0, (navigationBar?.size.width)!+statusBar.size.width, (navigationBar?.size.height)!+statusBar.size.height)
        gradient.frame = (gradientBounds)
        gradient.colors = [UIColor.redColor().CGColor, UIColor.blackColor().CGColor]
        gradient.locations = [0.0, 1.0]
        UIGraphicsBeginImageContext(gradient.bounds.size);
        gradient.renderInContext(UIGraphicsGetCurrentContext()!)
        let backImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.navigationController?.navigationBar.barStyle = UIBarStyle.Default
        self.navigationController?.navigationBar.setBackgroundImage(backImage, forBarMetrics: UIBarMetrics.Default)

enter image description here

1 个答案:

答案 0 :(得分:0)

默认情况下导航栏是半透明的,即使它们不是 - 它仍然是第一个要验证的地方。设置纯色背景图像并不会使其不透明,此外,您还需要通过代码或界面构建器设置导航栏translucent属性。