我使用以下代码将渐变颜色设置为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)
答案 0 :(得分:0)
默认情况下导航栏是半透明的,即使它们不是 - 它仍然是第一个要验证的地方。设置纯色背景图像并不会使其不透明,此外,您还需要通过代码或界面构建器设置导航栏translucent
属性。