【问题标题】:UItableviewcell is visible back to navigation bar in iosUItableviewcell 在 ios 的导航栏中可见
【发布时间】:2015-11-30 22:40:46
【问题描述】:

我正在使用下面的代码将渐变颜色设置为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)

【问题讨论】:

  • 尝试包括截图。

标签: ios swift uitableview uinavigationbar gradient


【解决方案1】:

导航栏默认是半透明的,即使不是 - 这仍然是第一个验证的地方。设置纯色背景图像不会使其不透明,此外您还需要通过代码或在 Interface Builder 中设置导航栏 translucent 属性。

【讨论】:

  • self.navigationController?.navigationBar.barStyle = UIBarStyle.Default。在这一行中,我什至尝试将 UIBarStyle 更改为半透明而不是默认值。但它不会产生任何影响。如果我删除渐变,则此表格视图内容不再位于导航栏的背面。为什么只有在应用渐变颜色时才会出现此问题?
  • 再次阅读答案,它没有说明更改barStyle的值,如果您需要更多关于为什么应该使用translucent的详细信息,请参阅UIBarStyle的文档.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
相关资源
最近更新 更多