【问题标题】:iOS black line on navigation controller transition导航控制器转换上的 iOS 黑线
【发布时间】:2019-02-08 07:25:11
【问题描述】:

当我的视图控制器(在导航项中嵌入了大标题和搜索栏)上执行推送/弹出转换时,黑线会短暂出现,如下所示:

我基本上尝试过更改所有与导航栏颜色相关的东西,但没有任何帮助。

任何帮助将不胜感激:)

【问题讨论】:

  • 尝试将您的 tableView 背景颜色更改为白色并将单元格背景颜色设置为黑色
  • @Shezad 这确实删除了该行,但现在 tableView 内容下方的部分是白色的,但应该是黑色的。有什么想法可以解决这个问题吗?
  • 忘记上面的解决方案,尝试将tableView的内容偏移设置为零或viewWillAppear中搜索栏的高度
  • @shezad 这删除了出现在后按上的大行,但表格视图滚动太多。顶行是整体的第 4 行。
  • 你能显示你用来设置内容偏移的代码吗?

标签: ios iphone swift uinavigationcontroller uinavigationbar


【解决方案1】:
extension UINavigationBar {


    var customStyle: NavigationBarCustomStyle {
        set(style) {
            switch style {
            case .clear:
                self.setBackgroundImage(UIImage(), for: .default)
            self.shadowImage = UIImage()
            self.tintColor = .white
            self.isTranslucent = false

                break
            case .bottomLine:
                self.tintColor = .gray
                self.backgroundColor = .yellow
                self.isTranslucent = false
                break
            }
        }
        get {
            return self.customStyle
        }
    }
}

enum NavigationBarCustomStyle {
    case clear
    case bottomLine
//  case white
}

在 ViewController >> viewDidLoad 方法放在下面一行:

self.navigationController?.navigationBar.customStyle = .clear

【讨论】:

  • 将 isTranslucent 属性更改为 false 中断状态栏和搜索栏颜色,所以我得到了这个:postimg.cc/image/q11em86rv
  • @dCubelic 请尝试删除此行
  • 删除该行时没有任何变化。当我删除 setBackgroundImage 行时,它会恢复到旧的行为。
  • 还是一样的:/
【解决方案2】:

尝试将导航栏的背景颜色设置为白色(取决于您的情况)为我解决问题,虽然还有另一个故障但更好:)

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController?.view.backgroundColor = .white
}

【讨论】:

  • 这没有帮助,不幸的是:/
猜你喜欢
  • 1970-01-01
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2015-08-30
相关资源
最近更新 更多